Kiedy czekam na konkretną działającą grupę procesów, która jest procesem podrzędnym, funkcja WIFEXITED zwraca wartość true, mówiąc o zakończeniu procesu? Czy tak to działa? Wydaje się, że jest coś nie mam zrozumienia ....Dlaczego WIFEXITED ma wartość True Return w uruchomionym procesie?
if (waitpid(-pgid, &pstatus, WUNTRACED|WNOHANG) == -1)
perror("Wait error");
if (WIFEXITED(pstatus)) {
strncpy(buf, "Exited", buf_size);
return 0;
Ah, zrobiłem Reinitialize 0, ale teraz jakby zrozumieć. ale nie bardzo rozumiem, jak stwierdzić, czy coś jest nadal uruchomione lub czy zostało zakończone (bez blokowania). –
Jeśli którekolwiek z twoich dzieci zmieniło status (zmarł) waitpid zwróci dodatnią liczbę. –
Och, rozumiem teraz ... Potrzebuję przyjąć zarówno wartość zwracaną, jak i wartość statusu, aby uzyskać status procesu. (Wartość zwracana nie dotyczy tylko błędu lub nie). Dziękuję Ci! –