关于子进程结束父进程怎么判断的问题,谢谢大家的帮忙!

wuhao840428 2008-01-04 02:46:33
在主进程我调用了signal函数
if(signal(SIGCHLD, childexit) == SIG_ERR)
{
perror("signal error\n");
return -1;
}

之后,我调用fork函数和exec函数,启动了2个子进程。当子进程结束后,调用childexit这个函数。
void childexit(int sig)
{
我想在这里判断究竟是哪个进程结束了,请问大家如何做才能判断是哪个进程结束了

sig这个参数,我也没用上
}

谢谢大家指教小弟该怎么实现这个功能。
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackbillow 2008-01-04
  • 打赏
  • 举报
回复
还可以这样:
void   childexit(int   sig) 
{
//我想在这里判断究竟是哪个进程结束了,请问大家如何做才能判断是哪个进程结束了
//sig这个参数,我也没用上
if(sig != SIGCHLD)
return; //error
else
{
int statloc;
int pid = wait(&statloc);
printf("\npid = %d ends!\n", pid);
}
}

blackbillow 2008-01-04
  • 打赏
  • 举报
回复
pid = fork();

if(pid>0)
waitpid(pid, NULL, 0);//等待子进程结束

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧