Linux操作系统——进程退出

在Linux中,进程的退出表示进程即将结束,进程的退出分为正常退出和异常退出
两种
正常退出

  • 在main()函数中执行return
  • 调用exit()函数
  • 调用_exit()函数

异常退出

  • 调用about函数
  • 进程收到某个信号,而该信号使程序终止
    这两种退出,系统最终都会执行内核中的统一代码,这段代码用来关闭进程所用已打开的文件描述符,释放它所占用的内存和其他资源

标题退出方式的不同点

exit和return的区别

  • exit是一个函数,有参数,exit执行完后把控制权交给系统

  • return是函数执行完成后的返回,return执行完成后把控制权交给调用函数
    exit和abort的区别

  • exit是正常终止

  • abort是异常终止

exit和_exit函数

exit函数

表头文件#include<stdlib.h>
定义函数void exit(int status)
函数说明exit()用来正常终结目前进程的执行,并把参数status返回给父进程,而进程所有的缓冲区数据会自动写回并关闭未关闭的文件
返回值

_exit函数

表头文件#include<unistd.h>
定义函数void _exit(int status)
函数说明_exit()用来立刻结束目前进程的执行,并把参数status返回父进程,并关闭未关闭的文件,此函数调用后不会返回,并且会传递SIGCHLD信号给父进程,父进程可以由wait函数取得子进程结束状态
返回值

这两者的区别
_exit()执行后理解返回给内核,exit()要先执行一些清楚操作,然后将控制权交给内核,
调用_exit函数时,其会关闭进程所有的文件描述符,清理内存,以及其他一些内核清理函数,但不会刷新流(stdin,stdout,…)。exit函数是在_exit函数之上的一个封装,他会调用_exit,并在调用之前先刷新流
这两者最大的区别在于,exit函数在调用exit系统之前要检查文件的打开情况,把文件缓冲区的内容写回文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值