news 2026/5/19 11:50:58

系统编程—进程2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
系统编程—进程2

一、进程关系与写时复制

子进程是父进程的一个复制品(副本)。

写时复制:Linux2.6及后续版本中,子进程通过fork创建时采用写时复制机制:fork刚完成时,子进程并不单独开辟空间,而是与父进程共享全部内存;仅当父子进程中任意一个修改某变量或内存区域,子进程才会为该部分内存开辟独立空间,实现按需复制。

二、进程的终止情况

1.main中return :触发进程退出,return 的值作为进程退出码

2.exit() c库函数,会执行io库的清理工作,关闭所有的流,以及所有打开的文件。

3._exit_Exit 会关闭所有的已经打开的文件,不执行清理函数。

4.主线程退出:主线程执行完毕退出,导致整个进程终止

5.主线程调用pthread_exit 异常终止

6.abort():主动触发 SIGABRT 信号,强制终止进程

7.signal kill pid :通过信号(如 SIGKILL/SIGTERM 等)终止进程

8.最后一个线程被pthread _cancle :取消最后一个存活线程,导致进程终止

三、退出后的进程

1.僵尸进程:父进程创建子进程后,子进程先消亡。对应用户内存空间释放,子进程也不会被调度了。但是内核空间中的对应的pcb块,没有释放。

2.孤儿进程:父进程创建子进程后,父进程先消亡。子进程会寻找新的父进程。

四、退出函数

1.exit函数

功能:让进程退出,并刷新缓存区

参数:status:进程退出的状态。

void exit(int status) exit(1);

2._exit 系统调用

功能:让进程退出,不刷新缓存区

参数:status:进程退出的状态。

void _exit(int status);

3.pid_t wait 函数

pid_t wait(int *status);

功能:该函数可以阻塞等待任意子进程退出
并回收该进程的状态。
只能父进程回收子进程状态。
参数:status 进程退出时候的状态
如果不关心其退出状态一般用NULL表示
如果要回收进程退出状态,则用WEXITSTATUS回收。
WIFEXITED(status) :是不是正常结束
WEXITSTATUS(status): 使用这个宏去那返回值
WIFSIGNALED(status) :是不是收到了信号而终止的
WTERMSIG(status):如果是信号终止的,那么是几号信号。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 13:09:33

基于 PLC控制机械手臂取放料的系统设计

摘要:随着工业自动化的不断深入,工业机器人已成为提升生产效率和降低成本的关键技术。尽管中大型机器人在工业生产中占据主导地位,但在精细化的生产流程中,小型机器人的应用需求日益凸显。为满足这一需求,该文设计了一…

作者头像 李华
网站建设 2026/5/14 9:16:44

GPT-SoVITS语音合成终极指南:从零开始掌握AI语音克隆技术

GPT-SoVITS语音合成终极指南:从零开始掌握AI语音克隆技术 【免费下载链接】GPT-SoVITS 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS GPT-SoVITS语音合成工具是一个功能强大的AI语音克隆解决方案,能够通过少量音频样本快速生成…

作者头像 李华
网站建设 2026/5/16 1:33:11

B站Linux客户端震撼来袭!打破次元壁的桌面观影神器

B站Linux客户端震撼来袭!打破次元壁的桌面观影神器 【免费下载链接】bilibili-linux 基于哔哩哔哩官方客户端移植的Linux版本 支持漫游 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-linux 还在为Linux上看不了B站而烦恼吗?&#x1f91…

作者头像 李华
网站建设 2026/5/16 7:59:36

UKB_RAP生物医学数据分析平台实战指南

UKB_RAP生物医学数据分析平台实战指南 【免费下载链接】UKB_RAP Access share reviewed code & Jupyter Notebooks for use on the UK Biobank (UKBB) Research Application Platform. Includes resources from DNAnexus webinars, online trainings and workshops. 项目…

作者头像 李华