结束进程
一个进程由于以下五个因素将会导致终止:
- main()函数调用了return;
- 调用了exit()//用户调用
- 调用了_exit()//系统调用
- 调用了abort()
- 被一个信号终止
前三个都是正常终止,后面两个为非正常终止
进程终止之后,都会执行相同的内核代码,这段代码做的工作就是关闭打开的文件,释放内存,和其他的清理工作。
exit()
int exit(int status);
- exit()导致程序正常终止,并且返回给父进程状态码status
进程终止之后,都会执行相同的内核代码,这段代码做的工作就是关闭打开的文件,释放内存,和其他的清理工作。
abort()
- void abort(void)
- abort导致程序异常终止
- abort还可以让程序产生core文件,用gdb可以进行分析
虽然任何打开的文件都会关闭,但是abort()是一个不优雅的方法,所以万不得已尽量不要使用
比如碰到内存严重不足,无法使用程序,则可能会使用abort()
kill()
int kill(pid_t pid,int sig);
- exit(),abort()用来杀死进程自己
- kill函数用来杀死另外一个进程。
- 参数pid就是杀死进程的标示,sig是要发送的信号。