编程语言 · 2023年 10月 21日 0

程序结束

51 次浏览

程序结束似乎没有人类有感情,记录离开的状态也许可以留下回忆。

退出状态

  • 一般程序结束会返回整形值表达最后的状态。
  • 操作系统或解释器获取此状态,可确定程序运行正常与否,Shell或批处理脚本可以用此决定走向。
  • 程序结束返回值一般保存在父进程内核结构中,Shell解释器可通过操作系统标准API获取其返回值,同时也提供符号供Shell脚本使用,比如$?, %errorlevel%.

退出方式

  • C语言一般通过exit(..)反馈结束值,在main函数中用return …一样的作用。
    • exit好理解,将返回值传递给内核。return语句并没有调用exit函数,但编译器一般在main函数偷偷后面插入了一些代码。比如Windows下插入了__scrt_common_main_seh函数(调用main函数),在执行完main函数后,将返回值(一般放置于eax寄存器)当参数丢给exit函数。
  • Shell使用内置命令exit退出脚本。
  • PHP 全局作用域使用return会终止脚本执行,在函数内部用return仅仅代表函数返回。

退出数值

  • Shell一般遵循0作为成功返回,非0是错误返回。