Witam,
jak zrobić aby proces pierwotny czekał na proces potomny i aby otrzymał status z jakim zakończył się potomek?

- Rejestracja:ponad 11 lat
- Ostatnio:ponad 4 lata
- Lokalizacja:Kernel
- Postów:90
0
Gdy podasz argument status
do waitpid(), a potem przepuścisz go przez WIFEXITED()
i WEXITSTATUS()
to powinieneś otrzymać kod wyjścia.
https://linux.die.net/man/2/waitpid

- Rejestracja:ponad 11 lat
- Ostatnio:ponad 4 lata
- Lokalizacja:Kernel
- Postów:90
0
Jak wcześniej mówiłem nie sprawdzam tego, bo nie mam pod ręką Linuxa, ale zrobił bym to mniej więcej tak: :)
int status = 0;
int returnCode = 0;
pid_t pid = fork();
waitpid(pid, &status, 0);
if(WIFEXITED(status)) {
returnCode = WEXITSTATUS(status);
printf("Proces returned %i", &returnCode);
}
else {
puts("Proces terminated, but not exited normally.");
}
edytowany 1x, ostatnio: hit02
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.