专栏中心

EEPW首页 > 专栏 > Linux 之exit() 进程退出函数

Linux 之exit() 进程退出函数

发布人:电子禅石 时间:2022-03-29 来源:工程师 发布文章

进程的退出

linux下进程数量太多会导致系统崩溃,在使用完一个进程之后要及时终止它。

进程退出一般有三种方法:

1、在main函数中使用 return关键字 ,使用 return 后系统会调用 exit()函数来终止进程。

2、手动调用 exit() 来终止进程。

3、调用 _exit() 来终止进程。

exit() 和 _exit() 函数

头文件


#include<unistd.h>

#include<stdlib.h>

1

2

原型


void _exit(int status);

void exit(int status);

1

2

_exit()

os立刻把管理内存的结构体、虚拟内存释放掉。

exit()

不会马上干掉结构体,先看先看当前进程有没有文件缓存区,若有则会先处理缓存区中的数据,然后销毁结构体。


#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>


int main()

{

pid_t res;

res = fork();

if(res == -1)

{

printf("fork err\r\n");

}

if(res == 0)

{

//不加回车换行符,让输出的字符串数据保留在io缓存区里面

printf("son");

//退出状态设置为0,表示正常退出。

_exit(0);

}

else if(res > 0)

{

printf("parent");

exit(0);

}

}



1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

编译后执行结果


jl@jl-virtual-machine:~/test$ ./a.out 

parentjl@jl-virtual-machine:~/test$ 

jl@jl-virtual-machine:~/test$ 

1

2

3

注意第二行开头的parent,因为在父进程中用的是 exit() 函数,在进程退出前会先处理完缓存区中的数据,所以缓存区中滞留的parent在推出前被打印出来。


使用\r\n输出字符串则会被立即打印。


补充

C语言中的exit()函数与 return 对比

————————————————


原文链接:https://blog.csdn.net/engineer0/article/details/109213577


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: linux

相关推荐

linux入门精华

Linux中的fork与exec系列函数分析

嵌入式系统 2025-08-06

由于英特尔裁员和公司重组,主要的英特尔 Linux 驱动项目正在消亡

基于ARM的嵌入式Linux系统开发 中

视频 2009-10-22

实时Linux技术:如何在嵌入式LINUX中应用实时特性

视频 2009-10-22

RK3506核心板SDK重磅升级,解锁三核A7实时控制新架构

2025-12-18

彻底告别486:Linux内核维护者正式移除英特尔486处理器支持

嵌入式Linux优化:加快系统起动和应用起动的过程

视频 2009-10-22

FFT公司9200的板子的资料

Kontron与Congatec合作开发安全的嵌入式Linux平台

53年后,惠普于1972年推出的总线标准获得了稳定的Linux驱动——通用接口总线拥有惊人的8 MB/s带宽

Linux 今天 34 岁了

Linux就AI生成代码定下规则:允许Copilot类工具、拒绝劣质AI代码,错误由人类负责

Linus Torvalds 称谷歌工程师提交的 RISC-V 代码为“垃圾”,并表示它“让世界变得更糟糕”

嵌入式系统 2025-08-11

基于ARM的嵌入式Linux系统开发 下

视频 2009-10-22

U-BOOT 与 MontaVista Linux 的移植

GeForce 590 驱动分支是首个不支持 GTX 9 和 10 系列 GPU 的分支——Linux 版本标志着定义时代显卡的终结

ARM 开发板使用手册 在三星 S3C2410开发板上烧写linux

基于ARM的嵌入式Linux系统开发 上

视频 2009-10-22
更多 培训课堂
更多 焦点
更多 视频

技术专区