当前位置: 首页 > news >正文

Linux学习七——进程回收

一.wait函数

wait 阻塞函数
函数作用:
1.阻塞并等待子进程退出
2.回收子进程残留资源
3.获取子进程结束状态(退出原因)

pid_t wait(int *wstatus);
返回值:
‐1 : 回收失败,已经没有子进程了
>0 : 回收子进程对应的pid

wait(NULL):不管是怎么结束的,返回子进程ID

参数 :
status判断子进程如何退出状态

1.WIFEXITED(status):为非0 ,进程正常结束
如上宏为真,使用此宏
WEXITSTATUS(status)获取进程退出状态的参数

2.WIFSIGNALED(status):为非0,进程异常退出
如上宏为真,使用此宏
WTERMSIG(status):取得使进程终止的那个信号的编号

调用一次只能回收一个子进程

wait(NULL):不管是怎么结束的,返回子进程ID

wait(&status)判断子进程怎么退出的(正常退出用WIFEXITED)

为什么exit value is 0?  因为main函数return 的是0,改成return 9,就会是exit value is 9

非正常结束,也就是用信号结束的

二.waitpid函数

函数作用:同wait函数

pid_t waitpid(pid_t pid, int *status, int options);
参数
1.pid: 指定回收某个子进程
pid == ‐1 回收所有子进程

while( (wpid=waitpid(‐1,status,0)) != ‐1)  一次只能回收一个,while循环回收全部子进程

pid > 0 回收某个pid相等的子进程
pid == 0 回收当前进程组的任一子进程
pid < 0 子进程的PID取反(加减号)

2.status: 子进程的退出状态,用法同wait函数

3.options:设置为WNOHANG,函数非阻塞,设置为0,函数阻塞

返回值:
>0 :返回清理掉的子进程ID
‐1 :回收失败,无子进程

如果为非阻塞
=0 :参数3为WNOHANG,且子进程正在运行

http://www.dtcms.com/a/108647.html

相关文章:

  • 一文详解QT环境搭建:Windows平台Qt安装配置指南
  • react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析--react18
  • 电脑异常关机导致oracle监听器启动后自动停止
  • 蓝桥杯 web 请到下一步
  • Spread使用 配合report使用前篇
  • python爬虫基础讲解
  • 【调用通义千问实现手写文字识别】
  • 04-08手写持久层框架——核心配置和映射配置文件解析
  • 从零构建大语言模型全栈开发指南:第四部分:工程实践与部署-4.2.1视觉-语言模型(VLM)架构设计(CLIP与Flamingo模式)
  • HarmonyOS 基础组件和基础布局的介绍
  • Nyquist插件基础:LISP语法-条件语句
  • 数据量管理系统
  • 光学关键尺寸量测设备市场报告:2024年全球市场销售额达到了14.75亿美元
  • 鸿蒙NEXT开发土司工具类(ArkTs)
  • 前端中rem,vh,vw
  • 网约车APP评价系统从0到1
  • 红宝书第二十六讲:详解Web Workers:专用、共享、Service Worker
  • PyTorch中Linear全连接层
  • 视频设备轨迹回放平台EasyCVR如何搭建公共娱乐场所远程视频监控系统
  • 铁路语义分割数据下载RailSem19: A Dataset for Semantic Rail Scene Understanding
  • 使用Android 原生LocationManager获取经纬度
  • 教育软件 UI 设计:打造吸睛又实用的学习入口
  • SELinux
  • Leetcode-100 二分查找常见操作总结
  • 数据点燃创新引擎:数据驱动的产品开发如何重塑未来?
  • Airflow量化入门系列:第一章 Apache Airflow 基础
  • 红宝书第二十五讲:客户端存储(Cookie、localStorage、IndexedDB):浏览器里的“记忆盒子”
  • Leetcode 6233 -- DFS序列 | 两遍DFS
  • Vue中JSEncrypt 数据加密和解密处理
  • Firefox账号同步书签不一致(火狐浏览器书签同步不一致)