#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
#include<wait.h>
#include<stdlib.h>
void sigchld_handler(int sig)
{
pid_t pid;
int status;
for(;(pid=waitpid(-1,&status,WNOHANG))>0;)
{
printf("child %d died:%d\n",pid,WEXITSTATUS(status));
printf("hi,parent process received SIGHLD signal successfully!\n");
}
return;
}
void main()
{
/*创建子进程*/
pid_t pc;
pc=fork();
if(pc==0)
{
printf("this is child process pid%d\n",getpid());
sleep(3);
exit(1);
}else
if(pc>0)
{
signal(SIGCHLD,sigchld_handler);
pause();
}else
if(pc<0)
{
printf("创建进程出错!");
exit(1);
}
}
Linux实验全纪录之 阻塞型通信程序框架
最新推荐文章于 2021-12-24 20:51:47 发布