#include <stdio.h>
#include"common.h"
/*
信号的响应有四种方式:
1.默认
2.忽略
3.阻塞延迟响应(挂起)
4.捕抓(关联)
*/
//响应函数 接口是固定的
void f(int sig)
{
printf("捕抓到一个信号:%d\n",sig);
wait(NULL); //回收了一个僵尸子进程
}
int main()
{
pid_t pid =fork();
if(pid<0)
{
perror("fork failed");
exit(1);
}
else if(pid>0)
{
signal(SIGCHLD,f); /*关联信号与函数
如果受到SIGCHLD信号就去执行f函数
*/
pause(); //暂停,直到收到一个不被忽略的信号
}
else
{
exit(0); //结束子进程就会给父进程发送一个SIGCHLD(17)信号
}
return 0;
}
linux的进程间通信之信号通信
最新推荐文章于 2023-01-07 07:00:00 发布