wait和waitpid:当一个进程正常或者异常终止的时候,内核就会向其父进程发送SIGCHLD信号,用于父进程来接受子进程的终止状态。

#include<sys/wait.h>pid_t wait(int * statloc);pid_t waitpid(pid_t pid ,int * statloc,int options);

wait和waitpid的主要区别是:

1)wait在等待子进程的终止返回信息的时候,也就是当所有的子进程都在运行的时候,进程将会阻塞而waitpid却可以使用第三个参数传入WNOHANG选项防止阻塞,立即返回。

2)waitpid可以等待某个特定进程而wait函数返回任意一个终止子进程的状态。

3)一般对于wait函数出错返回的唯一可能是调用进程没有子进程(函数调用被信号中断,也可能返回其他的错误)。而waitpid如果指定的进程或者进程组不存在。或者参数pid指定的进程不是调用进程的子进程,都可能会出错。


waitpid函数中 pid参数的作用:

1)pid == -1。等待任意子进程。此种情况下 等效于wait

2)pid>0 。等待特定的终止进程。

3)pid ==0 。等待组ID等于调用进程组ID的任意一个进程。

4)pid<-1 。等待组ID等于pid绝对值的任一子进程。

7.wait和waitpid相关推荐

  1. Linux wait() 和 waitpid()函数介绍

    转载自http://blog.csdn.net/wallwind/article/details/6998602 当一个进程正常或异常终止的时候,内核就像其父进程发送SIGCHLD信号,因为子进程是个 ...

  2. Linux环境编程--waitpid与fork与execlp

    waitpid waitpid(等待子进程中断或结束) 表头文件 #include<sys/types.h> #include<sys/wait.h> 定义函数 pid_t w ...

  3. Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid

    perror: #include<stdio.h>        #include<stdlib.h> 定义函数 void perror(const char *s);  pe ...

  4. linux 进程等待 wait 、 waitpid

    waitpid() 与 wait() 功能相似,都是用户主进程等待子进程结束或中断. 可用于进程之间的同步 wait 函数原型 pid_t wait(int *status); 函数说明 wait() ...

  5. 【转】linux中waitpid及wait的用法

    原文网址:http://www.2cto.com/os/201203/124851.html wait(等待子进程中断或结束) 表头文件 #include<sys/types.h> #in ...

  6. 8.6 wait和waitpid函数-进程控制

    8.6 wait和waitpid函数-进程控制 当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号.因为子进程终止是个异步事件(这可以在父进程运行的任何时候发生),所以这种信号也是内核 ...

  7. 详解wait和waitpid函数

    #include <sys/types.h> /* 提供类型pid_t的定义 */ #include <sys/wait.h> pid_t wait(int *status) ...

  8. linux中wait与waitpid的差别

    zombie不占用内存也不占用CPU,表面上我们可以不用在乎它们的存在,然而事实上UNIX系统限制了某一时刻能同时存在的进程的最大数目.如果程序不及时清理系统中的zombie,最终会导致进程数过多,当 ...

  9. UNIX高级环境编程(9)进程控制(Process Control)- fork,vfork,僵尸进程,wait和waitpid...

    本章包含内容有: 创建新进程 程序执行(program execution) 进程终止(process termination) 进程的各种ID 1 进程标识符(Process Identifiers ...

最新文章

  1. 高可用集群技术之RHCS应用详解(一)
  2. 10本书,搞定这门全球1000万程序员在用的编程语言
  3. ansys怎么建立弯曲圆柱_螺栓连接模型的建立方法解析
  4. python--修改默认递归层级
  5. fastjson生成json时Null属性不显示
  6. Java课程设计和sql数据库_数据库SQLserver+java课程设计
  7. locate用主动还是被动_已婚女人VS未婚女人,你觉得女人是应该主动出击还是被动接受?...
  8. 编译opencv错误解决:libavcodec.a(hevc_cabac.o): `ff_h264_cabac_tables' can not be used
  9. 一次性能优化引发的思考
  10. 创新电影院5G的未来
  11. 长沙互联网活动基地2019年年会活动纪实
  12. 吴思《潜规则》:错把任性当志气
  13. matlab如何实数域因式分解,x^n+1在实数域和复数域上如何因式分解
  14. Reids实战——优惠券秒杀(全局唯一ID生成策略)
  15. 阻塞数据直到步骤都完成帮助文档
  16. ubuntu无网卡使用360wifi 联网
  17. 经典算法—快速排序(Quicksort)使用详解
  18. OSChina 周三乱弹 —— 写得了代码,查得出异常
  19. 基于Laya游戏引擎实现微信小游戏排行榜
  20. 用计算器实现主机字节序与网络字节序之间转换

热门文章

  1. 51CTO,什么情况?
  2. 【C/C++】如何判断文件夹或者文件是否存在
  3. h5 canvas 显示rgb
  4. linux命令之添加系统搜索动态库目录-ldconfig
  5. 数字图像处理实验(总计23个)汇总
  6. 无限极分类不知pid_PHP实现无限极分类
  7. eclipse ssh连接git an error_JSP+SSH+Mysql实现的学生管理系统
  8. vue-axios 安装和应用
  9. 上云有风险 公有云选型小心进坑
  10. 字符串的初值 正则表达式 sed应用