您的位置:首页 > 运维架构 > Linux

如何测试Linux 中的wait函数能不能等待子进程的子进程?

2014-11-14 14:12 761 查看
#include <stdio.h>
#include <stdlib.h>

int main()
{
pid_t pid = fork();
switch(pid)
{
case -1:
perror("fork failed");
exit(1);
case 0:
{
pid = fork();
if(pid == -1)
{
perror("fork failed");
exit(1);
}
else if(pid == 0)
{
sleep(2);
printf("第三个进程pid为:%d\n", getpid());
sync();
exit(0);
}
else
{
sleep(10);
printf("第二个进程收到%d\n", wait(NULL));
exit(0);
}
}
default:
printf("第一个进程pid为:%d\n", getpid()); //返回当前进程的标识符
printf("第二个进程pid为:%d\n", pid);
printf("第一个进程收到%d\n", wait(NULL));
printf("第一个进程收到%d\n", wait(NULL));
sync();
break;
}
return 0;
}

[root@linux Desktop]# gcc b.c
[root@linux Desktop]# ./a.out
第一个进程pid为:3038
第二个进程pid为:3039 //等待大概两秒后输出第三行
第三个进程pid为:3040 //等待大概10秒后输出下面的
第二个进程收到3040
第一个进程收到3039
第一个进程收到-1 //注意看这儿
[root@linux Desktop]#

Linux API 中的wait函数能不能等待子进程的子进程(孙子进程)?

还是wait()只能等待直接子进程?
答案:wait函数不能等待子进程的子进程


http://zhidao.baidu.com/link?url=jsjeZhdSBkjUpcISh2TS4IOM2EcGn5q9q-hlF9Ep3s3hBz-rwc8SLOO0z0GiRbVroCq5cnmGGvDoHc06zhRTSa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: