Khi tôi chờ một nhóm quy trình đang chạy cụ thể là tiến trình con, WIFEXITED trả về đúng là quá trình đã thoát? Đây có phải là cách nó hoạt động không? Dường như có cái gì đó tôi không hiểu ....Tại sao WIFEXITED trả về đúng trên quy trình chạy?
if (waitpid(-pgid, &pstatus, WUNTRACED|WNOHANG) == -1)
perror("Wait error");
if (WIFEXITED(pstatus)) {
strncpy(buf, "Exited", buf_size);
return 0;
Ah, tôi đã làm reinitialize 0, nhưng bây giờ tôi loại hiểu. nhưng tôi không hoàn toàn hiểu làm thế nào để nói nếu một cái gì đó vẫn còn chạy hoặc nếu nó đã thoát (mà không bị chặn). –
Nếu bất kỳ trẻ nào của bạn thay đổi trạng thái (đã chết), waitpid sẽ trả về một số dương. –
Ồ tôi hiểu ngay bây giờ ... Tôi cần lấy cả giá trị trả lại và giá trị trạng thái để có được trạng thái của quá trình. (Giá trị trả về không chỉ là do lỗi hay không). Cảm ơn bạn! –