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

进程控制及其操作

  1. 进程创建

1.1 fork()函数

1.2 fork()函数的返回值

  1. 进程等待

2.1 进程等待的必要性

1.之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。 2.另外,进程一旦变成僵尸状态,那就刀枪不入,"杀人不眨眼"的kill -9 也无能为力,因为谁也没有办法 杀死一个已经死去的进程。 3.最后,父进程派给子进程的任务完成的如何,我们需要知道。如,子进程运行完成,结果对还是不对, 或者是否正常退出。 进程等待的作用:父进程通过进程等待的方式,回收子进程资源,获取子进程退出信息.

2.2 使用进程等待的方法

  1. 通过调用pid_t wait(int* status)函数。成功则返回被等待子进程的pid,失败返回-1。

  1. 通过调用pid_t waitpid(pid_t id, int* status, int options)函数

2.3 其他

  1. 如果子进程已经退出,调用wait/waitpid时,wait/waitpid会立即返回,并且释放资源,获得子进程退 出信息。

  1. 如果在任意时刻调用wait/waitpid,子进程存在且正常运行,则进程可能阻塞。

  1. 如果不存在该子进程,则立即出错返回。

  1. 进程终止

3.1 进程退出场景

3.1.1 代码运行完毕,结果正确。

3.1.2 代码运行完毕,结果不正确。

3.1.3 代码异常终止。

3.2 进程退出方法

【正常退出】:(可以通过echo $?查看进程退出码,退出码:main函数中return后面的数字)

3.2.1 从mian函数return返回。

3.2.2 任意地方调用exit()库函数。

3.2.3 _exit()系统函数。

3.2.4 exit与_exit的区别:exit会刷新缓冲区、_exit不会刷新缓冲区。

【异常退出】

http://www.lryc.cn/news/28609.html

相关文章:

  • Git常用命令复习笔记
  • 代码随想录算法训练营day49 | 动态规划 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV
  • 【教学典型案例】14.课程推送页面整理-增加定时功能
  • 【算法基础】DFS BFS 进阶训练
  • GO语言中的回调函数
  • 28个案例问题分析---014课程推送页面逻辑整理--vue
  • 佛科院单片机原理2——80C51单片机结构
  • 数据结构与算法_动态顺序表
  • 逃避浏览器JS检测打开开发者工具
  • ceph介绍、原理、架构、算法...个人学习记录
  • Spring MVC源码解析——HandlerMapping(处理器映射器)
  • 【Word/word2007】将标题第1章改成第一章
  • NLP预训练模型
  • Typora上传文档图片链接失效的问题+PicGo布置图床在Github
  • win10安装oracle
  • AQS为什么用双向链表?
  • AtCoder Beginner Contest 292——A-E题讲解
  • (蓝桥真题)最长不下降子序列(权值线段树)
  • 数据类型及参数传递
  • 永春堂1300系统开发|解析永春堂1300模式商城的五大奖项
  • 最近一年我都干了什么——反思!!
  • Docker学习(十七)save 和 export 命令的区别
  • 【数据结构初阶】详解“树”
  • 20230304 CF855 div3 vp
  • UML 时序图
  • 详解进程 及 探查进程
  • 汇编相关问题
  • 华为OD机试Golang解题 - 火星文计算 2 | 包含思路
  • 成功解决configure: error: the HTTP rewrite module requires the PCRE library
  • UNIX--GDB调试