什么是signal(SIGCHLD, SIG_IGN)函数

signal(SIGCHLD, SIG_IGN)函数用于忽略子进程结束时的SIGCHLD信号,防止僵尸进程的产生。通过设置此函数,父进程不关心子进程何时退出,由内核自动回收子进程资源。为避免资源浪费和PID限制,通常会在父进程无须收集子进程信息时使用。wait和waitpid函数则用于主动回收子进程,其中waitpid可以指定回收特定子进程,而wait会随机回收一个。" 106141544,7718663,Flink分布式执行详解:任务链、资源管理与状态保存,"['Flink', '分布式计算', '数据流处理']
摘要由CSDN通过智能技术生成

什么是signal(SIGCHLD, SIG_IGN)函数

在进行网络编程时候遇到这个函数的使用,自己学习结果如下,有不对请帮忙指正:)

signal(SIGCHLD, SIG_IGN)

打开manpage康一康~

sighandler_t signal ( int signum,  sighandler_t handler );

参数1 int signum: 就是信号的种类,这里是通过信号回收子进程的SIGCHLD. 子进程要终止了,发个SIGCHLD信号告诉父进程

参数2 sighandler_t handler: 这里选的是SIG_IGN, 忽视信号

这个函数总的意思就是: 我父进程不关心你子进程啥时候要退出,一会你退了以后内核把pcb那些该回收的那些回收了就行了(包括子进程号、运行时间信息,占用的内存,mask等等),别告诉我了嚎~
这是一个异步的子进程结束后的料理后事的语句。

为啥要特意写这个函数交代子进程结束以后的“后事”呢?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值