作者:顺大顺麻麻1009_388 | 来源:互联网 | 2023-09-15 20:10
一、简单版本
代码块
1 #include2 #include3 #include4 #include5 #include6 #include7 void catchSig(int sig)8 {9 printf("get a sig: %d,pid: %d\n",sig,getpid());10 }11 int main()12 {13 signal(SIGCHLD,catchSig);14 pid_t id=fork();15 if(id == 0)16 {17 18 printf("i am child,quit!my pid is %d\n",getpid());19 exit(1);20 }21 else22 {23 24 waitpid(id,NULL,0);25 }26 return 0;
Makefile文件
1 pro1 : pro1.c2 gcc -o $@ $^ -lpthread -g 3 .PHONY:clean4 clean:5 rm -f pro1
运行结果
总结
由此可见子进程在退出前会给父进程发送SIGCHLD(17号信号)信号。