wait()、waitpid()函数的区别(个人总结)

 子进程无论是正常或异常退出,内核都会向父进程发送信号 SIGCHILD.,因为无论是使用wait函数(阻塞),还是使用waitpid(得循环判断)都会将父进程阻塞住,而不能执行别的操作,所以,如果父进程还需要执行别的操作,就将wait/waitpid函数置于信号捕捉函数中就可以解决这个问题了,(当然也可以在父进程中单独起个线程来解决。)

wait函数、waitpid函数每次都只能回收一个子进程。

参考该文。

 wait函数是通过waitpid函数封装的:

static inline pid_t wait(int * wait_stat)

{

    return waitpid(-1,wait_stat,0);

}

1、区别1:返回值的区别

wait函数只有两个返回值,

成功返回回收的子进程id;

失败返回-1,errno被置为ECHILD。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值