waitpid介绍

本文介绍了waitpid与wait系统调用的区别,包括如何通过pid参数指定子进程以及阻塞式与非阻塞式的操作模式。此外,还讨论了多进程环境中可能出现的竞态条件及其潜在风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《朱老师物联网大讲堂》学习笔记     
学习地址:www.zhulaoshi.org 


waitpid与wait不同之处,
waitpid可以指定pid的子进程,
waitpid可以阻塞式或非阻塞式两种工作模式,
 pid_t waitpid(pid_t pid, int *status, int options);
options参数,用于设置是否阻塞,


//ret = wait(&status);
//ret = waitpid(-1, &status, 0); -1代表任意子进程,
//ret = waitpid(pid, &status, 0);
ret = waitpid(pid, &status, WNOHANG);// 非阻塞式

       waitpid(): on success, returns the process ID of the child whose  state
       has changed; if WNOHANG was specified and one or more child(ren) speci-
       fied by pid exist, but have not yet changed state, then 0 is  returned.
       On error, -1 is returned.


竞态初步引入,
多进程环境下,多个进程同时抢占资源,
竞争状态是危险的,会有很多不确定,
我们要尽可能去消灭这种危险的可能,

操作系统给我们提供的有一系列的方法,去消灭竞争状态,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值