news 2026/8/24 21:54:09

系统编程—进程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/8/24 3:07:27

LXMusic V250801音源系统深度探索:从架构设计到性能调优

还在为找不到心仪的音乐而发愁吗?🤔 今天我们来聊聊LXMusic V250801版本音源系统的那些事儿。作为一款备受喜爱的开源音乐工具,LXMusic的音源系统就像是音乐世界的"寻宝地图",带你找到那些隐藏的音频宝藏。本文将带你从…

作者头像 李华
网站建设 2026/8/25 8:08:59

TranslucentTB中文设置完整指南:让任务栏透明化工具说中文

TranslucentTB中文设置完整指南:让任务栏透明化工具说中文 【免费下载链接】TranslucentTB 项目地址: https://gitcode.com/gh_mirrors/tra/TranslucentTB TranslucentTB是一款广受欢迎的Windows任务栏透明化工具,但很多用户在安装后发现界面显示…

作者头像 李华
网站建设 2026/8/25 8:08:17

百度网盘下载加速终极指南:免费突破限速完整方案

百度网盘下载加速终极指南:免费突破限速完整方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse baidu-wangpan-parse是一款专门针对百度网盘分享链接的直链解析工…

作者头像 李华
网站建设 2026/8/24 8:56:19

3步搞定Habitat-Matterport 3D数据集完整安装指南 [特殊字符]

3步搞定Habitat-Matterport 3D数据集完整安装指南 🚀 【免费下载链接】habitat-matterport3d-dataset This repository contains code to reproduce experimental results from our HM3D paper in NeurIPS 2021. 项目地址: https://gitcode.com/gh_mirrors/ha/hab…

作者头像 李华
网站建设 2026/8/22 10:54:22

企业级RPA利器OpenRPA:零基础快速部署与实战应用完全指南

企业级RPA利器OpenRPA:零基础快速部署与实战应用完全指南 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 在当今数字化时代,企业级RPA工具OpenRPA正成为自动化流程的革命…

作者头像 李华