exit()和return的区别:
按照ANSI C,在最初调用的main()中使用return和exit()的效果相同。
但要注意这里所说的是“最初调用”。如果main()在一个递归程序中,exit()仍然会终止程序;但return将
控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序。return和exit()的另一个区别
在于,即使在除main()之外的函数中调用exit(),它也将终止程序。
_exit()与exit的区别:
头文件:
exit:#include<stdlib.h>
_exit:#include<unistd.h>
_exit()函数:直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;
exit()函数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。
exit()函数与_exit()函数最大的区别就在于 exit()函数在调用 exit 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。

1. exit用于结束正在运行的整个程序,它将参数返回给OS,把控制权交给操作系统;而return 是退出当前函数,返回函数值,把控制权交给调用函数。
2. exit是系统调用级别,它表示一个进程的结束;而return 是语言级别的,它表示调用堆栈的返回。
3. 在main函数结束时,会隐式地调用exit函数,所以一般程序执行到main()结尾时,则结束主进程。exit将删除进程使用的内存空间,同时把错误信息返回给父进程。
4. void exit(int status); 一般status为0,表示正常退出,非0表示非正常退出。

1、exit函数和return函数的主要区别是:

1)exit用于在程序运行的过程中随时结束程序,其参数是返回给OS的。也可以这么讲:exit函数是退出应用程序,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息。

main函数结束时也会隐式地调用exit函数,exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。

exit是系统调用级别的,它表示了一个进程的结束,它将删除进程使用的内存空间,同时把错误信息返回父进程。通常情况:exit(0)表示程序正常, exit(1)和exit(-1)表示程序异常退出,exit(2)表示系统找不到指定的文件。在整个程序中,只要调用exit就结束。

2)return是语言级别的,它表示了调用堆栈的返回;return是返回函数值并退出函数,通常0为正常退出,非0为非正常退出,请注意,如果是在主函数main, 自然也就结束当前进程了(也就是说,在main()里面,你可以用return n,也能够直接用exit(n)来做),如果不是在main函数中,那就是退回上一层调用。在多个进程时,如果有时要检测上个进程是否正常退出,就要用到上个进程的返回值。

转载于:https://www.cnblogs.com/study-ma/p/3946917.html

exit()和return的区别相关推荐

  1. linux脚本中的exit,Shell中exit和return的区别讲解

    1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...

  2. Shell 中 exit 和 return 的区别

    1.exit 命令 exit 命令是 Shell 内建命令,用于退出当前 Shell 进程.使用格式如下: exit [N] 可以指定退出状态 N,N 的取值范围是 0-255,一般情况下,0 表示正 ...

  3. C语言中的exit与return的区别

    exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 exit(0)表示进程正常退出. 返回 0; exit(1)表示进程非正常退出. 返回 1. exit与return ...

  4. Linux编程中的坑——C++中exit和return的区别

    今天遇到一个坑,折腾了一天才把这个坑填上,情况是这样的: 写了段代码,在main()函数中创建一个分离线程,结果这个线程什么都没干就直接挂掉了,代码长这样: [cpp] view plaincopy ...

  5. exit()函数详解与Exit() 和 Return() 的区别

    exit(0) 表示程序正常, exit(1)/exit(-1)表示程序异常退出 exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束 return() 是当前函数返回, ...

  6. exit和return的区别

    1.exit();  是整个程序的结束. exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: 2.return(); 是某个函数的结束,并返回结果. return返回函 ...

  7. c语言中exit和return的区别

    点击上方蓝字关注我,了解更多咨询 1.返回函数值的return是关键字,exit是一个函数. return是语言级的,它表示调用堆栈的返回:exit是系统调用级的,它表示一个过程的结束. 2.retu ...

  8. exit(0)与exit(1),return三者区别(详解)

    转自:https://www.cnblogs.com/ECJTUACM-873284962/p/6882448.html exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程 ...

  9. linux如何在C程序中使用exit,c语言exit和return区别,在fork和vfork中使用

    exit函数在头文件stdlib.h中. 简述: exit(0):正常运行程序并退出程序: exit(1):非正常运行导致退出程序: return():返回函数,若在main主函数中,则会退出函数并返 ...

  10. 在Linux中,_exit()、exit(0)、exit(1)、和return的区别!!

    功能: _exit() :退出程序: exit(0):运行正常退出程序: exit(1):运行异常退出程序: return():返回函数,若在主函数中,则会退出函数并返回值. _exit() 和 ex ...

最新文章

  1. 服务器ping你可以ping通,你ping服务器ping不同的解决方案!!
  2. /lib64/libc.so.6 is not a symbolic link 解决方法
  3. 网易云摸到了大象灵巧的鼻子
  4. Science上发表的超赞聚类算法
  5. fopen在linux中打开文件夹,plain C:用fopen()打开一个目录
  6. 图解分布式系统架构演进之路
  7. Android之Intent.ACTION_MEDIA_SCANNER_SCAN_FILE:扫描指定文件
  8. 【转载】可能是把Docker的概念讲的最清楚的一篇文章
  9. pandas写入excel指定行_pandas读写excel文件的基本操作!,详细,教学,Pandas,对
  10. 工欲善其事必先利其器——网络工程师必备六款软件(收藏下载❤️)
  11. Win7 安装 -- SHSUCDX can’t install 问题解决
  12. “非常晚餐”第一期 “3D虚拟世界”是“黑客帝国”吗?
  13. 极度干货——GitHub受欢迎的Android UI Library整理
  14. ONF组织的SDN架构文档——概述(一)
  15. MySQL设计与优化
  16. Qt和海康威视混合编程
  17. android qq 设置界面大小设置,怎么设置手机腾讯QQ的字体大小
  18. svg实现多个元素拖拽
  19. Sublime Text 中文版安装和插件安装
  20. 杨振宁国科大演讲互动

热门文章

  1. 【转贴】谈论 Direct3D10特性预览
  2. 『参考』.net CF组件编程(1)——基础之后
  3. 区块链供应链金融应用场景解决方案
  4. 201621123041java程序设计第二周学习总结
  5. BZOJ 1857: [Scoi2010]传送带
  6. vue-cli脚手架npm相关文件解读(7)dev-server.js
  7. Ubuntu 14.04 开机手动开启numlock led
  8. Go Web开发之Revel - 返回值
  9. 理解 position:relative 与 position:absolute
  10. sqldf包:让SQL语句在R语言中执行