在Linux的C编程中,我知道该wait()函数用于等待子进程终止,但是有一些方法(或函数)让子进程等待父进程终止吗?
Linux有一个扩展(如非POSIX函数).查找prctl("与过程相关的控制").
有了prctl,您可以安排孩子在父母去世时获得信号.查找使用的PR_SET_PDEATHSIG操作代码prctl.
例如,如果你将它设置为SIGKILL信号,它有效地为我们提供了一种方法,让孩子在父母去世时死亡.但是,当然,信号可能是孩子可以捕获的东西.
prctl可以做各种其他事情.它就像一个ioctl目标就是流程本身:一个"流程ioctl".
简短的回答:不。
父进程可以控制其子进程的终端或进程组,这就是我们拥有wait()和waitpid()函数的原因。孩子对其父母没有这种控制权,因此没有内置任何东西。
如果您确实需要子级知道其父级何时退出,则可以让父级在atexit()处理程序中向子级发送信号,并让子级捕获该信号。
| 归档时间: |
|
| 查看次数: |
3209 次 |
| 最近记录: |