这里写目录标题

  • wait()
  • waitpid()

wait()

使用wait()函数与waitpid()函数让父进程回收子进程的系统资源,两个函数的功能大致类似,waitpid()函数的功能要比wait()函数的功能更多。

所需头文件:
#include<sys/types.h>
#include<sys/wait.h>函数原型:
pid_t wait(int *status)函数参数:
status    保存子进程结束时的状态(由exit();返回的值)。使用地址传递,父进程获得该变量。若无需获得状态,则参数设置为NULL返回值:
成功:已回收的子进程的PID
失败:-1

当进程结束时,该进程会向它的父进程报告。wait()函数用于使父进程阻塞,直到父进程接收到一个它的子进程已经结束的信号为止。如果该进程没有子进程或所有子进程都已结束,则wait()函数会立即返回-1。

waitpid()

所需头文件:
#include<sys/types.h>
#include<sys/wait.h>函数原型:
pid_t waitpid(pid_t pid, int *status, int options)函数参数:
pid
pid>0    回收PID等于参数pid的子进程
pid==-1    回收任何一个子进程。此时同wait()
pid==0    回收其组ID等于调用进程的组ID的任一子进程
pid<-1    回收其组ID等于pid的绝对值的任一子进程status
同wait()options    0:同wait(),此时父进程会阻塞等待子进程退出
WNOHANG:若指定的进程未结束,则立即返回0(不会等待子进程结束)返回值:
>0        已经结束运行的子进程号
0        使用WNOHANG选项且子进程未退出
-1        错误

waitpid()函数的功能与wait()函数一样,不过waitpid()函数有若干选项,所以功能也比wait()函数更加强大。实际上,wait()函数只是waitpid()函数的一个特例而已,Linux内核总是调用waitpid()函数完成相应的功能。

wait(NULL)等价于waitpid(-1,NULL,0)。

Linux wait()/waitpid()相关推荐

  1. linux waitpid实例,Linux中waitpid()函数的用法

    大家知道,当用fork启动一个新的子进程的时候,子进程就有了新的生命周期,并将在其自己的地址空间内独立运行.但有的时候,我们希望知道某一个自己创建的子进程何时结束,从而方便父进程做一些处理动作.同样的 ...

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

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

  3. linux 进程退出原因,linux – 为什么waitpid不等待进程退出?

    在下面的脚本中,我试图弄清楚waitpid是如何工作的,但它不会等待ssh进程退出.完成后立即打印,而不是在ssh过程存在之后. 题 当我给它的pid退出时,如何才使waitpid继续? #!/usr ...

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

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

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

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

  6. linux c之wait和waitpid函数的用法和总结

    1.wait和waitpid函数的介绍 1)  wait()函数用于使父进程(也就是调用wait()的进程)阻塞,直到一个子进程结束或者该进程接收到了一个指定的信号为止.如果该父进程没有子进程或者它的 ...

  7. Linux中wait()函数及waitpid()函数

    编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程.这里简单介绍一下系统调用函数:wait() 函数原型是 #include & ...

  8. Linux 等待进程结束 wait() 和 waitpid()

    若子进程先于父进程结束时,父进程调用wait()函数和不调用wait()函数会产生两种不同的结果: --> 如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态. -- ...

  9. linux基础知识——wait函数和waitpid函数回收子进程

    1.wait函数回收子进程 \qquad父进程可以调用wait()函数回收子进程的终止信息.wait函数有三个功能: \qquad阻塞等待子进程退出 \qquad回收子进程残留资源 \qquad获取子 ...

最新文章

  1. Hello World!团队第四次会议
  2. notepad python_Notepad++配置Python开发环境
  3. CVPR 2020 | 自适应聚合网络AANet:更高效的立体匹配
  4. 伪元素::before与::after的用法
  5. UIButton设置圆角和边框及边框颜色
  6. 程序人生:给所有程序员的27个建议,抽空看看吧!
  7. TestNG中的参数化– DataProvider和TestNG XML(带有示例)
  8. 什么从什么写短句_2020抖音文案短句:爱情、励志、伤感合集,值得收藏!
  9. HiveQL学习笔记(三):Hive表连接
  10. 【转】Linux里如何查找文件内容
  11. 爱客影院自动采集程序源码v3.5.5
  12. 觅风易语言[11-20]
  13. 【线性代数】P7 方阵的行列式伴随矩阵
  14. 斯坦福的《机器学习》课程上线了
  15. JAVA基础(完结版)
  16. PHP获取客户端真实 IP 地址
  17. [Android]朝花夕拾之使用DexClassLoader动态加载广点通jar包
  18. STM32F411 Discovery学习笔记(四)串口
  19. Java【有哪些适合新手练手的Java项目?】
  20. 互联网基础与应用复习

热门文章

  1. 数据分析相关岗位目前的就业形势好吗
  2. 教你查询快递单号物流多次派件的单号
  3. 搜索广告算法中4个有趣的定律
  4. 初高中计算机科学老师,高中计算机教师年终个人评优总结
  5. 运营人三大终极问题:我是谁?我要做什么?我该怎么做?
  6. php中可以实现多态的是继承,php:对象继承和多态的实例
  7. matlab求因子载荷矩阵,Matlab因子分析
  8. java遍历jsonarray_java JSONArray 遍历方式(2种)
  9. 柑橘病虫害识别方案总结
  10. Hive实战UDF 外部依赖文件找不到的问题