2.8父进程等待子进程退出(一)(第二阶段)
理论知识图片





代码展示
**#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/wait.h>
int main()
{
pid_t pid;
int cnt = 0;
int status = 10;
pid = fork();
if(pid > 0){
wait(&status);//fujincheng huidnegdao zaizhebian dengdaizijincheng wanchenghou zhixing
printf("child quit, status = %d\n",WEXITSTATUS(status));
while(1){
printf("cnt=%d\n",cnt);
printf("this is father print:%d\n",getpid());
sleep(1);
}
}else if(pid == 0){
while(1){
printf("this is child print,child pid = %d\n",getpid());
sleep(1);
cnt++;
if(cnt == 5){//
exit(3);//_exit(0);
}
}
}
return 0;
}**

本文介绍了一个C语言代码示例,演示了父进程如何使用wait函数等待子进程退出。在子进程中,有一个无限循环,当计数器达到5时,子进程通过exit函数退出,传递退出状态。父进程在接收到子进程退出信号后,打印相关信息并进入自己的无限循环。

被折叠的 条评论
为什么被折叠?



