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

张小明 2026/1/11 9:15:38
网站管家,成华区响应式网站建设,珠海专业网站制作平台,广州投标平台目录 一、父子进程关系 二、进程终止的 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进行投诉反馈,一经查实,立即删除!

网站做外国生意网站开发风险

AutoGPT镜像内置优化参数,启动即高性能 在今天,一个开发者想快速验证一个AI智能体能否自动完成“调研人工智能趋势并撰写报告”这类复杂任务,最怕遇到什么?不是模型能力不够,而是环境配不齐、依赖冲突、API调不通、跑着…

张小明 2026/1/2 21:01:26 网站建设

网站如何做收款二维码南通网站建设案例

OpCore Simplify实战教程:5步构建完美Hackintosh系统 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 想要在普通PC上体验macOS系统&#x…

张小明 2026/1/7 14:22:24 网站建设

绍兴网站建设服务wordpress打印功能

还在为AI工具使用效率低下而烦恼吗?Chatbox作为一款开源跨平台AI桌面客户端,正在重新定义个人AI工作站的搭建方式。这款支持Windows、macOS和Linux系统的工具,通过直观的界面设计和丰富的功能模块,让每位用户都能轻松构建专属的智…

张小明 2026/1/9 11:49:02 网站建设

网站服务器配置淘宝联盟做网站

还在为复杂的Steam游戏文件清单获取而烦恼吗?🤔 今天我要向你介绍一个革命性的工具——Onekey,它能让你在短短几分钟内轻松获取任何Steam游戏的完整文件清单!无论你是游戏开发者、资源管理者,还是想要深入了解游戏文件…

张小明 2026/1/3 6:42:00 网站建设

工作室主题网站模板wordpress comments.php

Maccy剪贴板管理器:macOS效率工具的终极革命 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy 还在为频繁切换应用查找复制内容而浪费时间吗?Maccy作为一款轻量级的macOS剪贴…

张小明 2026/1/9 16:18:34 网站建设

建设一个购物网站流程wordpress标签加icon

第一章:Laravel 13 的多模态权限控制在现代 Web 应用开发中,权限控制不再局限于简单的角色判断。Laravel 13 引入了多模态权限系统,支持基于角色、策略、能力标签以及上下文环境的复合权限判定机制,使访问控制更加灵活与安全。权限…

张小明 2026/1/3 16:13:19 网站建设