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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 分区键_mysql分区

    mysql 分区键_mysql分区分区就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑创建分区,是对数据表,和索引表,同时创建分区的。不能分别创建分区;同时也不能对部分数据进行分区;分区在创建完成之后,管理员也无法动态更改;mysql分区的优点主要包括:和单个磁盘…

    2022年4月27日
    36
  • 计算机软件师社会需求,java软件工程师的社会环境如何?「建议收藏」

    计算机软件师社会需求,java软件工程师的社会环境如何?「建议收藏」计算机专业成功的改变了很多人的命运,很多人选择计算机培训后拥有了很体面的工作,拥有了很高的工资待遇,整个人的生活水平方面了质的改变。所以越来越多的人希望可以学习计算机,而在专业选择的过程中,JAVA专业吸引到很多求学者的关注。在对JAVA这个专业了解的过程中,JAVA软件工程师的社会环境成为了很多求学者希望了解的内容,这样才能够对这个专业具有更加全面的了解。社会的地位引起关注从JAVA专业成功就业…

    2022年9月23日
    2
  • 递归之原理及汉罗塔的递归与非递归实现[通俗易懂]

    递归之原理及汉罗塔的递归与非递归实现[通俗易懂]递归章节一.什么是递归递归:简单的讲,就是定义一个过程或函数时出现调用本过程或本函数就称为递归。典型的例子:求阶乘:intfun(intn){ if(n==1) return(1);elsereturnfun(n*fun(n-1));}二.那么使用递归需要满足那些条件呢?(1) 从上例就可以看出,递归需要终止递归的结束条件。(2)…

    2022年10月11日
    3
  • 关于word中mathtype编辑的公式以域代码/域值显示的问题

    关于word中mathtype编辑的公式以域代码/域值显示的问题关于word中mathtype编辑的公式以域代码/域值显示的问题下面为域值显示下面为域代码显示

    2022年5月24日
    59
  • Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝!

    Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝!SpringCloudGreenwich正式版在01/23/2019这天正式发布了,下面我们来看下有哪些更新内容。生命周期终止提醒SpringCloudEdgwareEdgware版本将于08/01/2019正式退役,具体可以参考官方宣布:https://spring.io/blog/2018/07/30/spring-cloud-edgware-eol-aug…

    2025年8月3日
    2
  • 本地计算机上的task scheduler服务启动后停止_task

    本地计算机上的task scheduler服务启动后停止_task1.如果对应服务依赖都正常情况下,请参考下面解决方案进入注册表(cmd–>regedit,依次找到HKEY_LOCAL_MACHINE\HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\RPC\INTERNET,删除INTERNET,重启服务器注:删除前请导出备份…

    2022年10月11日
    3

发表回复

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

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