当前位置: 技术问答>linux和unix
请教进程通信
来源: 互联网 发布时间:2015-07-23
本文导语: 我用vfork开了一个子进程,然后直接用execl调用另一个程序,请问我如何在父程序中知道execl调用的程序是什么时候执行结束的? 我的代码是在UCLINUX下写的 。 十分着急,那位大虾能给个列子。 谢谢 |...
我用vfork开了一个子进程,然后直接用execl调用另一个程序,请问我如何在父程序中知道execl调用的程序是什么时候执行结束的?
我的代码是在UCLINUX下写的 。
十分着急,那位大虾能给个列子。
谢谢
我的代码是在UCLINUX下写的 。
十分着急,那位大虾能给个列子。
谢谢
|
父进程对SIGCHLD信号进行处理,取得本地时间不就行了。
要是需要得到子进程的结束状态,可以由WIF系列的宏得到退出状态
要是子进程可以控制结束,还可以在结束前通过IPC通知父进程
要是需要得到子进程的结束状态,可以由WIF系列的宏得到退出状态
要是子进程可以控制结束,还可以在结束前通过IPC通知父进程
|
signal(SIGCHLD, ChildExit);
void ChildExit(int s)
{
int i, j;
pid_t pid;
int stat;
while( (pid = waitpid( -1, &stat, WNOHANG )) > 0 )
{ }
}
void ChildExit(int s)
{
int i, j;
pid_t pid;
int stat;
while( (pid = waitpid( -1, &stat, WNOHANG )) > 0 )
{ }
}