进程终止

进程终止

  • 终止方式

    1.正常终止,结果正确

    2.正常终止,结果错误

    3.异常终止

  • 终止方法

    1.正常终止(可以通过echo $?查看进程退出码)

    • 调用_exit函数
    
    #include <unistd.h>
    
    void _exit(int status)
    
    参数:status定义了进程终止状态,父进程通过wait来获取
    注意:虽然status是int,但只有低八位可以被父进程使用
         证明:_exit(-1)时,执行echo $?返回值255 
    • 调用exit函数
    
    #include <unistd.h>
    
    void exit(int status)
    
    exit函数做了以下事情,最终调用了_exit函数:
    1. 执行用户通过ataxia或on_exit定义的清理函数
    2. 冲刷缓存,将所有缓存数据写入,并且关闭所有打开的流
    3. 调用_exit函数

    这里写图片描述

    • main函数返回(return退出)
    return是一种更常见的退出进程的方法
    main函数运行时,exit函数会将main返回值当作参数
    return n则相当于exit(n)。

    2.异常退出

    ctrl + c 信号终止
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_长风_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值