exit()函数和_exit()函数的区别

在C语言中,exit()和_exit()都用于结束进程,但exit()是标准库函数,会刷新I/O缓冲区,而_exit()是系统调用,不进行缓冲区处理。进程退出状态可以通过退出码传递给父进程,使用echo $?可以查看上一次进程的退出码。案例展示了两者不同的执行效果。

结束进程

在C语言中,我们用continue,break,return结束循环或退出函数

continue:结束本次循环

break:跳出整个循环,或跳出switch()语句

return:结束当前函数

在Linux中,我们通过exit()或_exit()来结束当前进程

exit()函数

所需头文件:

#include<stdlib.h>

void exit(int status);

功能:结束调用此函数的进程

参数

status:返回给父进程的参数(低8位有效),至于这个参数多少是根据需要来填写

返回值:无

_exit()函数

头文件:#include<unistd.h>

void _exit(int status);

功能:结束调用此函数的进程

参数

status: 返回给父进程的参数(低8位有效),至于这个参数多少是根据需要来填写

返回值:

exit()和_eixt()函数区别:

  1. exit()和_eixt()函数功能和用法是一样的,就是所包含的头文件不一样。
  2. exit()属于标准库函数,_exit()属于系统调用函数。

 

https://i-blog.csdnimg.cn/blog_migrate/c9c9a4e0bec203be1fc43dbde209043b.jpeg

当一个进程终止了,我们需要知道进程退出时的状态,我们需要通过进程结束时的退出码来识别。

进程正常结束时:

  1. 从main()函数返回
  2. 调用exit()函数/调用_exit()函数(系统调用)

我们可以用(echo$?)查看上一次进程执行结束的退出码。

案例:

执行结果:

此外,exit()函数,会刷新I/O缓冲区

执行结果:

若调用_exit()

调用_exit()函数,执行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值