exit()与return的区别:

  • exit(0):正常运行程序并退出程序,调用时程序运行正常结束;
  • exit(1):非正常运行导致退出程序,调用时程序运行非正常结束;
  • return():返回函数,若在主函数中,则会退出函数并返回一值,在其他函数中意味着函数调用完毕,并返回一个值。

本质上:

  • return返回函数值,是关键字; exit 是一个函数。
  • return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
  • return是函数的退出(返回);exit是进程的退出。
  • return是C语言提供的;exit是操作系统提供的(或者函数库中给出的)。
  • return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出, 非0 为非正常退出。
  • 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。

示例一

  #include<stdio.h>#include<stdlib.h>void fun(){printf("调用return前\n");return;//结束此函数的调用printf("调用return后\n");} int main(){printf("调用fun函数前\n");fun();printf("调用fun函数后\n");return 0;}

运行结果:

调用fun函数前
调用return前
调用fun函数后

示例二

 #include<stdio.h>#include<stdlib.h>void fun(){// printf("调用return前\n");// return;//结束此函数的调用// printf("调用return后\n");printf("调用exit前\n");exit(0);printf("调用exit后\n");} int main()
{printf("调用fun函数前\n");fun();printf("调用fun函数后\n");return 0;
}

运行结果:

调用fun函数前
调用exit前

结语

人生就应该exit(0),光明磊落,血气方刚,在对的时间做对的事,才不枉在世上走一回。

【Linux】exit(0)exit(1)return相关推荐

  1. 【Linux】1.0常见指令以及权限理解(上)

    文章目录 1.Linux简介 1.1 Linux内核介绍 1.2Centos操作系统介绍 2.Linux 常见指令 1. ls 指令 2.pwd 指令 3.cd 指令 4.touch指令 5.mkdi ...

  2. 【Linux】_exit()、exit(0)、exit(1)与return区别详解

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

  3. 【Linux】4.0进程控制

    文章目录 Linux进程退出 Linux进程等待 wait( )函数 waitpid( )函数 进程程序替换 exec*函数系列 Makefile创建多个程序 mini_shell 内建命令和第三方命 ...

  4. 【Linux】一步一步学Linux——exit命令(207)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 总结 06. 附录 01. 命令概述 exit命令用来退出当前的shell或退出终 ...

  5. 【Linux】【服务器】 CentOS7下安装MySQL(版本8.0)详细过程步骤

    一.检查是否安装过mysql [Linux][服务器]CentOS7下卸载MySQL详细过程步骤 二.下载Linux下的Mysql包,打开Mysql官网 1.MySQL官网 2.滑到最后,点击MySQ ...

  6. 【Linux】在Ubuntu上部署web项目(Ubuntu版本为16.04.7,jdk1.8、mysql5.7、tomcat9.0.48)

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  7. 【 Linux 】Vim 使用的第一个阶段(满足基本的写代码需求)

    由于是刚接触vim,也不知道怎么学,那就站在巨人的肩膀上吧,死记硬背书上的那些指令肯定也不是我所能接受的,看到了一篇博客,写的还不错,([ Linux ]Vim学习指南 ),这是我转载的一篇博文,里面 ...

  8. 【Linux】一步一步学Linux——trap命令(229)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 其它说明 05. 参考示例 06. 附录 01. 命令概述 trap命令用于指定在接收到信号后将要采 ...

  9. Linux 线程并发拷贝,【Linux】线程并发拷贝程序

    据说大连某211高校的李教授越来越重口,不仅延续要求他所带的每一个本科班,都要写一份线程并发拷贝程序的传统,而且还开始规定不能用Java语言写作,导致我之前写的<[Java]线程并发拷贝程序&g ...

  10. 【Linux】3.0Linux进程概念

    文章目录 1.冯诺依曼体系结构 1.1计算机体系的奠基人 1.2冯诺伊曼体系讲解 1.3机器间的数据交互 2.操作系统(OS) 2.1操作系统基本概念 2.2操作系统管理理解 2.3操作系统进程管理 ...

最新文章

  1. FFmpeg实现获取USB摄像头视频流测试代码
  2. 人工智能:各种知识收集----不断追加内容
  3. Qt读取TXT文件时,GBK与UTF-8编码判断
  4. LYNC2013部署系列PART4:群聊部署
  5. java正则表达式验证密码_最新密码验证正则表达式
  6. python爬虫抓取51cto博客大牛的文章保存到MySQL数据库
  7. scanf函数的返回值问题
  8. Vue菜单栏边框参差不齐,修整完美
  9. 编辑距离 在输入检测中的应用
  10. 我是小白0基础,现在我想学习前端开发,该如何系统的学习?
  11. 第七届蓝桥杯javaB组真题解析-抽签(第五题)
  12. Linux基础命令---检查密码文件pwck 1
  13. ant design 时间控件清空值
  14. 第115页的gtk+编程例子——最简单的进度条2附带使用Anjuta写gtk程序的步骤
  15. myeclipse10破解补丁激活方法
  16. 靠微信小程序两周获客20万,同城小程序开始爆发
  17. Spark算子:RDD行动Action操作–aggregate、fold、lookup;reduce/fold/aggregate区别
  18. 五一假期维修手机感想
  19. 使用梯子导致的浏览器不能正常使用
  20. Quartus II实验二 运算部件实验:并行乘法器

热门文章

  1. GC原理以及有哪几种工作方式
  2. 百度架构师高并发web架构分析
  3. 数据对齐-编辑距离算法详解(Levenshtein distance)
  4. 八、线性和二阶近似 九、曲线构图 十、最值计算
  5. python 将json转csv出现空行的问题解决
  6. NN-Descent构建K近邻图——论文超详细注解
  7. c语言的翻译叫什么_C语言如何把它翻译成中文
  8. string头文件常用方法(C++)
  9. Machine Learning for hackers读书笔记(八)PCA:构建股票市场指数
  10. Windows多次复制粘贴快捷键