exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束,跳回操作系统。

exit(0) 表示程序正常退出,exit⑴/exit(-1)表示程序异常退出。

exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束。

            函数用法

函数名: exit()

所在头文件:stdlib.h(如果是"VC6.0"的话头文件为:windows.h)

功 能: 关闭所有文件,终止正在执行的进程。

exit(0)表示正常退出,

exit(x)(x不为0)都表示异常退出,这个x是返回给操作系统(包括UNIX,Linux,和MS DOS)的,以供其他程序使用。

stdlib.h: void exit(int status);//参 数status,程序退出的返回值

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 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。

man 3 exit

The C standard specifies two constants, EXIT_SUCCESS and EXIT_FAILURE, that may be passed to exit() to indicate

successful or unsuccessful termination, respectively.

注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXIT_SUCCESS);

退出过程

1.调用atexit()注册的函数(出口函数);按ATEXIT注册时相反的顺序调用所有由它注册的函数,这使得我们可以指定在程序终止时执行自己的清理动作.例如,保存程序状态信息于某个文件,解开对共享数据库上的锁等.

2.cleanup();关闭所有打开的流,这将导致写所有被缓冲的输出,删除用TMPFILE函数建立的所有临时文件.

3.最后调用_exit()函数终止进程。

_exit做3件事(man):

1,Any open file descriptors belonging to the process are closed

2,any children of the process are inherited by process 1, init

3,the process's parent is sent a SIGCHLD signal

exit执行完清理工作后就调用_exit来终止进程。

参考自360百科    参考网址:https://baike.so.com/doc/6759674-6974306.html

c语言中的exit函数相关推荐

  1. c语言中exit函数可以返回嘛,C语言中的exit函数 以及他与return函数的区别

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

  2. c语言 return退出函数,C语言中的exit函数 以及他与return函数的区别

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

  3. c语言中的printf函数_C语言中的printf()函数与示例

    c语言中的printf函数 C语言中的printf()函数 (printf() function in C) The printf() function is defined in the <s ...

  4. c语言的point函数,C语言中friend友元函数详细解析

    C语言中friend友元函数详细解析 友元函数是可以直接访问类的私有成员的非成员函数.它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字frien ...

  5. C语言中的strstr函数

    C语言中的strstr函数 说到strstr函数,可能很多人会比较陌生,对比其他的字符串函数比如strcpy,strcmp等等,它的确比较少用,但其实他也是一个非常有用和常见的函数,今天,就让我们一起 ...

  6. C语言中的atoi函数的实现

    C语言中有很多的库函数,其实平时没事的时候多去实现一下里面的库函数还是很有用的,下面就来讲一讲C语言中的atoi函数,这个函数的主要功能是将一个字符串转化为一个数字,可能第一眼看上去,你会觉得这是一个 ...

  7. main c语言中变量的定义,C语言中在main函数中定义的变量是全局变量么_后端开发...

    PHP 和 JavaSript 区别_后端开发 PHP是一种创建动态交互性站点的强有力的服务器端脚本语言,主要用于Web开发领域,而JavaSript是一种具有函数优先的轻量级,解释型或即时编译型的高 ...

  8. C语言中的sprint函数,求sprintf函数的详解

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求sprintf函数的详解,要附带例,粘贴来的也可以,只 问题详情:还有就是我还想要一些常用的宽度修饰之类的输入或者输出格式:回答: ...

  9. c语言里面gets(a)是什么意思,C语言中的gets()函数

    在c语言中读取字符串有多种方法,比如scanf() 配合%s使用,但是这种方法只能获取一个单词,即遇到空格等空字符就会返回.如果要读取一行字符串, 比如:I love MIT 这种情况,scanf() ...

最新文章

  1. MySQL索引管理及执行计划
  2. Hi3531与Hi3520 GPIO口的对比及驱动的修改
  3. Spring MVC注释
  4. 【学会如何学习系列】从婴儿到大学——学习的本质从未改变过
  5. 信号与系统sa函数求积分_瞎扯数学分析微积分(1~4)
  6. python读取txt文件出现UnicodeError
  7. 华三 h3c MVRP(GVRP)配置
  8. 士林变频器面板如何调速度_必读干货丨西威变频器DRIVE OVERLOAD故障处理
  9. 2020-2022 抗疫营销案例合集(共17份)
  10. 【无人机组装与调试】第六章 电调、电池、电机
  11. 单链表学生管理系统(0723-林雪阵)
  12. 用计算机怎么计算字节,计算器里面的字节、字、双字、四字
  13. 杨子江gre填空词汇分类整理
  14. 华尔街日报评亚洲10大商界人物 王建宙等上榜
  15. 二维导热问题的ADI-TDMA算法
  16. 【机器学习】数值分析02——任意方程求根
  17. 三维空间的三角剖分( 3D Delaunay Triangulated graph)第二部分:剖分三维空间
  18. 【转载】Pyramid的权限管理
  19. 【干货】Python中“\n”、“\t”、“end”的用法
  20. C/C++个人帐本管理系统

热门文章

  1. Tikz作图教程:图论中环的画法
  2. dll,exe图标提取器
  3. 云计算需要考虑的安全技术
  4. html css实现轮播图
  5. 苹果2021这轮Mac很不厚道,选配让人如此迷惑
  6. 网站安全狗Nginx版V2.0发布 全方位防护网站安全
  7. 海洋工作室——网站建设专家:中国共有多少个省?自治区?直辖市?特别行政区?...
  8. Games101 作业5 光线与三角形相交
  9. Golang中的strings.TrimLeft和strings.TrimRight
  10. 2024东北大学计算机考研信息汇总