LINUX.ORG.RU

Сообщения sav1902

 

Почему зомби самоуничтожается?

Форум — Development

Создаю дочерний процесс - fork(), в нем запускаю утилиту Oracle SqlLoader - execlp(...). Судя по документации после завершения работы процесса должен остаться зомби. Но когда я в коде вызываю waitpid() - получаю ошибку ECHILD, пробовал wait - получил ECHILD.

Если же я включаю обработчик сигнала SIGCHLD, причем обработчик ничего не делает:

static void sigchld_handler(int signo) { }

в этом случае waitpid отрабатывает нормально. Но тут возникает еще вопрос. Обрабатываю статус завершения процесса. Макросы WIFEXITED, WIFSIGNALED, WIFSTOPPED, WIFCONTINUED. Судя по той же документации либо WIFEXITED либо WIFSIGNALED возвращает true, но у меня true возвращают оба.

Если кто-то мне объяснит почему в доке одно а на деле другое, или даст ссылку на доку где все нормально, подробно описано - буду очень благодарен.

Система Redhat Linux 4.0. GCC 4.3.3

sav1902
()

RSS подписка на новые темы