结束进程的常见方式

来源:互联网 发布:网络音响 编辑:程序博客网 时间:2024/06/07 04:48

结束进程

一个进程由于以下五个因素将会导致终止:

  • 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是要发送的信号。
0 0