进程终止
进程终止的原因
释放进程申请的相关内核,数据结构和对应的数据和代码。本身是释放系统资源。
进程终止的常见方式
- 代码跑完,结果正确
main函数 return 0
- 代码跑完,结果不正确
main函数 return 非0其他值(如何进程后获取?linux命令行
echo $?
得最近一个进程的退出码)
- 代码没跑完,进程崩溃
尚未执行return语句,因为出现运行时错误而终止进程
int * p=NULL;
*p=2131;
不执行后边的代码而输出
Segmentation fault
用代码如何正确终止?
return
main函数中可return 退出码 则程序终止
但是函数中的return只是return一个返回值 不会导致进程的终止
exit(int)头文件stdlib.h
无论在哪里调用都会导致进程终止
其参数是退出码
有exit()和_exit()两个函数,后者是系统调用,前者封装后者
其中一个很大的区别是exit()在刷新缓存区最后调用_exit()退出进程 可见缓冲区是C标准库为我们维护的