sca*_*cai 10
您可以通过调用getppid()然后通过发送信号0来获取父进程ID kill().返回码0表示进程仍处于活动状态.
正如@Ariel所提到的,getppid()将返回原始父级的pid或者init的pid,这将是pid 1.因此,您必须通过getppid()在启动时调用或稍后检查您的父级是否具有pid 1 来存储父级pid .
根据这个答案在Linux上,你还可以通过检测的父母去世prctl()的PR_SET_PDEATHSIG选项和自我选择的信号.
如果父进程和子进程的生命周期都在您的控制之下,最可移植的方法是与父进程共享管道或套接字的一半。
这种方法的优点是它完全避免了信号,这是 UNIX 中最难掌握的机制之一,并提供了一个可等待的描述符,可以轻松地与网络多路复用器或 GUI 事件循环集成。
| 归档时间: |
|
| 查看次数: |
6101 次 |
| 最近记录: |