网站管家成华区响应式网站建设

张小明 2025/12/29 10:01:51
网站管家,成华区响应式网站建设,珠海专业网站制作平台,广州投标平台目录 一、父子进程关系 二、进程终止的 8 种场景 三、退出函数 1.exit() 1#xff09;基础信息 2#xff09;核心特点 3#xff09;参数 status 的作用 4#xff09;exit 与 return 的区别 2._exit() 1#xff09;基础信息 2#xff09;核心特点 四、退出后的…目录一、父子进程关系二、进程终止的 8 种场景三、退出函数1.exit()1基础信息2核心特点3参数 status 的作用4exit 与 return 的区别2._exit()1基础信息2核心特点四、退出后的进程状态1.僵尸进程Zombie2.孤儿进程Orphan五、进程空间的回收一、父子进程关系子进程是父进程的内存副本包含代码、数据、PCB 等资源写时复制Linux 2.6fork 后父子进程共享内存空间仅当某一方修改内存区域时才会开辟独立空间 —— 减少冗余内存开销。二、进程终止的 8 种场景正常终止main 函数中 return进程随 main 函数结束而退出exit()C 库函数会先刷新缓存、调用 atexit 注册的清理函数再关闭文件描述符_exit/_Exit系统调用直接关闭打开的文件但不刷新缓存、不执行清理函数主线程退出整个进程会随主线程结束而终止主线程调用 pthread_exit仅主线程退出进程是否终止取决于是否有其他线程在运行。异常终止abort()主动触发异常终止比如程序崩溃时会调用信号终止比如用 kill pid 给进程发终止信号最后一个线程被 pthread_cancel 取消线程被取消后进程随之终止。三、退出函数函数类型缓存处理执行流程exit()C 库函数刷新缓存刷新缓存 → 执行 atexit 清理函数 → 调用 _exit()_exit()系统调用不刷新缓存直接终止进程、释放资源1.exit()1基础信息类型C 标准库函数函数原型void exit(int status)示例调用exit(1);2核心特点功能让进程退出并刷新缓存区参数status进程退出的状态返回值缺省3参数 status 的作用status 用于表示进程的退出状态正常终止时状态由 exit 传入的 status 指定异常终止时状态由内核提供包含异常原因父进程可通过 wait/waitpid 获取该状态完成资源回收。常用预定义状态宏宏名值含义EXIT_SUCCESS0进程正常退出EXIT_FAILURE1进程异常退出4exit 与 return 的区别若 return 出现在 main 函数中会触发整个进程终止若 return 出现在其他函数中仅终止当前函数不影响进程运行。注main 中的 return 等价于 exit(return值)其他函数中 return 仅结束当前函数。exit 是进程正常终止的常用方式之一其优势在于能保证 I/O 缓存区的数据被正确刷写到目标文件避免数据丢失这是它与直接调用系统调用 _exit 的核心差异。2._exit()1基础信息类型Linux 系统调用直接与内核交互非库函数封装函数原型void _exit(int status);2核心特点功能直接终止当前进程但不刷新 I/O 缓存区—— 进程中暂存于 I/O 缓存的未写入数据会被直接丢弃无法保存到目标文件。参数status用于表示进程退出状态与 exit 的 status 作用一致父进程可通过 wait/waitpid 获取该状态完成子进程的资源回收。返回值无进程终止后无返回逻辑四、退出后的进程状态进程退出后不是所有资源都会立刻清理 —— 这就产生了两种特殊进程1.僵尸进程Zombie场景父进程创建子进程后子进程先退出但父进程没回收子进程的内核数据结构PCB特点用户空间内存已释放但内核里的 PCB 还在进程状态显示为 Zzombie危害如果父进程长期运行且频繁创建子进程僵尸进程会占满内核内存导致系统不稳定。可以使用 top 或 ps 指令查看2.孤儿进程Orphan场景父进程先退出子进程失去父进程特点子进程会被 init或systemd进程收养后续由新父进程负责回收资源结论无需额外关注系统会自动处理。五、进程空间的回收要解决僵尸进程问题父进程得主动调用 wait 函数回收子进程pid_t wait(int *status);功能父进程阻塞等待任意子进程退出并回收其 PCB参数 status存储子进程的退出状态不想关注可以传 NULL返回值成功返回被回收的子进程 PID失败返回 - 1。可以用这些宏解析 status 里的信息WIFEXITED(status)判断子进程是否正常终止WEXITSTATUS(status)获取子进程正常终止时的退出码WIFSIGNALED(status)判断子进程是否被信号终止WTERMSIG(status)获取终止子进程的信号编号。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

环县网站怎么做网站设计步骤及流程

移动端长列表滑动卡顿?Vue-Awesome-Swiper虚拟滚动让你告别白屏尴尬 【免费下载链接】vue-awesome-swiper 🏆 Swiper component for vuejs 项目地址: https://gitcode.com/gh_mirrors/vu/vue-awesome-swiper 还在为移动端滑动列表时突然出现的白屏…

张小明 2025/12/26 1:15:15 网站建设

免费作图网站都有哪些湖南长沙十大特产

PyInstaller Extractor终极指南:3步掌握Python逆向分析核心技术 【免费下载链接】pyinstxtractor PyInstaller Extractor 项目地址: https://gitcode.com/gh_mirrors/py/pyinstxtractor PyInstaller Extractor是一款功能强大的Python逆向分析工具&#xff0c…

张小明 2025/12/26 4:38:44 网站建设

网络营销的概念?长宁怎么做网站优化好

Langchain-Chatchat能否实现问答结果截图分享? 在企业知识管理日益智能化的今天,越来越多组织开始部署本地化的大模型问答系统,以应对敏感数据外泄的风险。其中,Langchain-Chatchat 作为一款开源、可私有化部署的知识库对话引擎&a…

张小明 2025/12/26 14:02:45 网站建设

开发网站的项目背景描述运城哪家做网站的公司好

律师咨询系统 目录 基于springboot vue律师咨询系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue律师咨询系统 一、前言 博主介绍:✌…

张小明 2025/12/26 1:15:51 网站建设

微信平台的微网站怎么做重庆有什么好玩的旅游景点

第一章:Docker镜像扫描效率提升80%?关键在于忽略规则配置优化在持续集成与交付流程中,Docker镜像安全扫描已成为不可或缺的一环。然而,频繁的全量扫描常导致构建时间显著延长。通过合理配置扫描工具的忽略规则,可有效跳…

张小明 2025/12/25 18:18:15 网站建设