进程退出场景
代码运行完毕,结果正确。
代码运行完毕,结果错误。
代码异常终止
进程常见退出方法
正常终止(可通过 echo $? 查看进程退出码):
1.从main返回
2.调用exit
3._exit
异常退出:
ctrl + c,信号终止
查看进程退出码
echo $? 输出最近一次进程退出时的退出码 (正常退出返回 0)
0:success !0:failed
main函数
main函数return,代表进程退出。非main函数返回代表函数返回。
return是一种更常见的退出进程方法。执行return n等同于执行exit(n),因为调用main的运行时函数会将main的返 回值当做 exit的参数。
exit函数
exit函数在任何函数当中都代表着进程的退出,不限于main,参数为退出码。
_exit函数
_exit终止进程,但是不要进行进程的收尾工作(冲刷缓冲,关闭流)。
进程退出在操作系统中做了什么?
系统层面,少了一个进程:free PCB,free, mm_struct, free 页表和各种映射关系,
代码 + 数据 申请的空间也要释放掉。