打印
[boot]

Linux-waitpid介绍

[复制链接]
555|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
蒋博1026|  楼主 | 2019-7-27 09:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、waitpid与wait差别
(1)、基本功能是一样的,都是用来回收子进程
(2)、waitpid可以回收指定PID的子进程
(3)、waitpid可以阻塞式或非阻塞式两种工作模式
2、代码示例
(1)、ret = waitpid(-1, &status, 0);
-1表示不等待某个特定PID的子进程而是回收任意一个子进程,0表示默认的方式(阻塞式)来进行等待,返回值ret是本次回收的子进程的PID。
(2)、ret = waitpid(pid, &status, 0);
等待回收PID为pid的这个子进程,如果当前进程并没有一个ID号为pid的子进程,则返回值为-1;如果成功回收了pid这个子进程则返回值为回收的进程的PID。
(3)、ret = waitpid(pid, &status, WNOHANG);
这种表示父进程要非阻塞式的回收子进程。此时如果父进程执行waitpid时子进程已经先结束等待回收则waitpid直接回收成功,返回值是回收的子进程的PID;如果父进程waitpid时子进程尚未结束则父进程立刻返回(非阻塞),但是返回值为0(表示回收不成功)。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

323

主题

1820

帖子

18

粉丝