gpt4 book ai didi

c++ - Linux:WAITING PID 死亡

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:09 28 4
gpt4 key购买 nike

我有一个带有中央事件机制的程序,该机制使用 select、epoll 或 kevent(平台依赖、OSX、Linux 和 FreeBSD)。

现在我有一个问题,我需要等待一个进程完成执行。我从这个过程中得到的只是它的 PID。有没有办法等待上述机制让 PID 完成?

我目前的想法是为 PID 创建一个管道,并通过使用带有信号 0 的 kill 来轮询 PID,以检查它是否存在。如果不是,则向管道写入一个字节以唤醒轮询机制。但我不喜欢为这个问题需要一个额外线程的想法。

感谢您的每一个回答!

最佳答案

为 SIGCHLD 注册一个处理程序(空的,您只希望信号中断您对 select() 或您通常等待的任何其他函数的调用),然后检查等待函数是否返回了 EINTR。如果是这样——它被一个信号打断了;通过使用 WNOHANG 调用 wait4() 来检查您的 child 的状态。

关于c++ - Linux:WAITING PID 死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44284276/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com