Форум — Development Узнать состояние процесса в C 0 0 Известен pid, нужно узнать, зомби он или ещё нет. Без использования wait. Как это сделать? Ссылка
#include <procstat.h> ... printf("Is zombie: %d",is_zombie(pid)); ... anonymous (12.03.08 16:03:29 MSK) Показать ответ Ссылка
Хм... Файл /proc/<pid>/stat , третьим словом обозначено состояние, у зомби там Z. Только не знаю, на сколько это всё правильно с т.з. портабельности. seiken ★★★★★ (12.03.08 16:05:11 MSK) Ссылка
Ответ на: комментарий от anonymous 12.03.08 16:03:29 MSK >procstat.h что за зверь? seiken ★★★★★ (12.03.08 16:13:19 MSK) Показать ответы Ссылка
Ответ на: комментарий от seiken 12.03.08 16:13:19 MSK Присоединяюсь к этому вопросу. Есть ещё другой вопрос. Процесс A породил поток B, потом B форкнулся, и у него появился дочерний процесс C. Будет ли wait из A отлавливать завершение процесса C? ttnl ★★★★★ (12.03.08 16:49:07 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от seiken 12.03.08 16:13:19 MSK > что за зверь? 99% что всё та-же обвязка поверх /proc/<pid>/stat-а // wbr klalafuda ★☆☆ (12.03.08 16:54:25 MSK) Ссылка
Ответ на: комментарий от ttnl 12.03.08 16:49:07 MSK нет rei3er ★ (12.03.08 17:39:58 MSK) Показать ответ Ссылка
Ответ на: комментарий от rei3er 12.03.08 17:39:58 MSK Ура ttnl ★★★★★ (12.03.08 17:51:36 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от ttnl 12.03.08 17:51:36 MSK А вот и не ура. Ждет всё-таки. Единственный способ - использовать waitpid с опцией WNOHANG. ttnl ★★★★★ (13.03.08 15:02:24 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от ttnl 13.03.08 15:02:24 MSK > А вот и не ура. Ждет всё-таки. Единственный способ - использовать waitpid с опцией WNOHANG. есть правда одно но: процесс должен быть дочерним. что явно бывает далеко не всегда. // wbr klalafuda ★☆☆ (13.03.08 15:39:04 MSK) Показать ответ Ссылка
Ответ на: комментарий от klalafuda 13.03.08 15:39:04 MSK Это да. В моем случае - как раз дочерний, способ для братьев пока не нужен. ttnl ★★★★★ (13.03.08 15:43:13 MSK) автор топика Ссылка