exit与return的区别

exit与return的区别

===========================PHP的解释===========================================================   

return 虽然返回数据,并且不再往下执行,但是它会返回执行上一步的操作,所以return的只是当前function而不会影响其他function的执行;

       exti 是完全将整个项目的执行都停止了;

die()停止程序运行,输出内容
exit是停止程序运行,不输出内容
return是返回值
die是遇到错误才停止
exit是直接停止,并且不运行后续代码,exit()可以显示内容。
return就是纯粹的返回值了,但是也不会运行后续代码
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值。

========================================================================

exit();  是整个程序的结束。

  • exit(0):正常运行程序并退出程序;
  • exit(1):非正常运行导致退出程序;

return();是某个函数的结束,并返回结果。

 

  1. return返回函数值,是关键字;  exit 是一个函数。

  2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
  3. return是函数的退出(返回);exit是进程的退出。

  4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。

  5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出,非0 为非正常退出。

  6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。

 exit和_exit

进程终止有5种方法:

1正常终止

(1)从main函数返回

(2)调用exit

(3)调用_exit

2异常终止

(1)调用abort

(2)由一个信号来终止 

 

 

exit和_exit就是用来正常终止一个进程的,主要区别是_exit会立刻进入内核,而exit先执行一些清除工作(包括执行各种终止处理程序,关闭所有标准I/O等,一旦关闭了IO,例如Printf等函数就不会输出任何东西了),然后才进入内核。这两个函数会对父子进程有一定的影响,当用vfork创建子进程时,子进程会先在父进程的地址空间运行(这跟fork不一样),如果子进程调用了exit就会把父进程的IO给关掉。

 

这两个函数都带一个参数表示终止状态,这跟我们平时写的return效果是一样的,如果不返回一个终止状态,那表示这个进程的终止状态就是未定义的。

 

 

转自http://blog.csdn.net/jody1989/article/details/6821477

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112659.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月3日 下午5:00
下一篇 2021年11月3日 下午6:00


相关推荐

  • Vue全家桶有哪些?(详细)

    Vue全家桶有哪些?(详细)vue 全家桶都有什么全家桶 顾名思义 对于开发一个完整的中大型单页面应用项目所必须的所必须的插件和框架 注 此文章主要讲解 vue cli 脚手架开发方式 主要介绍各插件安装方法及其功能特点 不介绍各插件的具体使用方式 具体使用方式详见其他详细介绍文章 一 vue clivue cli 也叫脚手架 官方定义为 Vue js 开发的标准工具 相比 scirpt 标签引入 脚手架具有如下特点 1 功能丰富对 Babel TypeScript ESLint PostCSS PWA 单元测试和 End to en

    2026年3月19日
    2
  • 开源哥们姐们聊一聊:微信Agent化的模样?

    开源哥们姐们聊一聊:微信Agent化的模样?

    2026年3月14日
    3
  • Map 的 key、value 是否允许为null

    Map 的 key、value 是否允许为null

    2021年6月19日
    165
  • 《Python源码剖析》学习笔记

    《Python源码剖析》学习笔记最近阅读《Python源码剖析》一书,对python底层实现有了更为深刻的理解,特在此记录学习笔记。共有六篇笔记,原文发表在PythonTip。Python源码剖析笔记—第一章:Python对象初探Python源码剖析笔记—-第二章:初识PyIntObjectpython源码剖析笔记—PyListObjectpython源码剖析笔记—Dic

    2022年8月23日
    10
  • Ubuntu 20.04 LTS上安装Edge浏览器

    Ubuntu 20.04 LTS上安装Edge浏览器文章目录Ubuntu20.04LTS上安装Edge浏览器Ubuntu20.04LTS上安装Edge浏览器本文部分内容转载自:HowtoInstallMicrosoftEdgeBrowseronUbuntu20.04|Linuxize,亲自安装测试并验证。Edge浏览器在各主要OS上均有正式版本发布,但是在Ubuntu上没有一个正式发布的版本。在Ubuntu上打开DownloadMicrosoftEdgeBrowser|Microsoft网页上看到不支持Ubuntu系

    2022年7月21日
    28
  • ODT 学习笔记「建议收藏」

    ODT 学习笔记「建议收藏」珂朵莉,要一直幸福下去哟!warning:本文在大白天书写,脑子可能不大好用。目前代码选自题解,等有时间自己写一下。简介ODT(OldDriverTree(中文译名张舟树),又称ChthollyTree,即众人皆知的珂朵莉树)是一种非常暴力的思想或者做法(注意我没有说是数据结构)简单来说,其核心思想是把一段区间推平(这也是其适用的地方——区间赋值),推平之后,原数列变成一段一段的了(每段的数值相同),然后就可以搞事了。ODT在随机数据下,复杂度近似O(mlogn)O(mlog

    2025年8月30日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号