结束进程的常见方式

结束进程

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

  • 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是要发送的信号。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值