C 参考手册
- C 语言
- C 关键词
- 预处理器
- C 标准库头文件
- 类型支持
- 程序支持工具
- longjmp
- _Exit
- atexit
- at_quick_exit
- signal
- EXIT_SUCCESS, EXIT_FAILURE
- raise
- sig_atomic_t
- SIG_DFL, SIG_IGN
- SIG_ERR
- SIGTERM, SIGSEGV, SIGINT, SIGILL, SIGABRT, SIGFPE
- system
- getenv, getenv_s
- quick_exit
- exit
- abort
- setjmp
- jmp_buf
- 变参数函数
- 错误处理
- 动态内存管理
- 日期和时间工具
- 字符串库
- 算法
- 数值
- 文件输入/输出
- 本地化支持
- 原子操作库
- 线程支持库
- 实验性 C 标准库
- 有用的资源
- 符号索引
- 注释
exit
定义于头文件 <stdlib.h>
|
||
void exit( int exit_code ); |
(C11 前) | |
_Noreturn void exit( int exit_code ); |
(C11 起) | |
导致正常程序终止出现。
进行几个清理步骤:
- 以注册的逆序调用传递给 atexit 的函数
- 冲入并关闭所有 C 流
- 移除 tmpfile 创建的文件
- 将控制返回给宿主环境。若
exit_code
为零或 EXIT_SUCCESS ,则返回指示成功终止的实现定义状态。若exit_code
为 EXIT_FAILURE ,则返回指示不成功终止的实现定义状态。其他情况下返回实现定义的状态值。
注意
不调用由 at_quick_exit 注册的函数。
若程序调用 exit
多于一次,或它调用 exit
和 quick_exit ,则行为未定义。
若在调用由 atexit 注册的函数期间,以 longjmp 退出该函数,则行为未定义。
从 main
函数返回时,无论是通过 return
语句还是抵达函数尾,都会将 return 语句的参数(或若使用隐式返回,则为 0 )作为 exit_code
传递,执行 exit()
。
参数
exit_code | - | 程序的退出状态 |
返回值
(无)
示例
运行此代码
输出:
error opening file data.txt in function main()
引用
- C11 standard (ISO/IEC 9899:2011):
- 7.22.4.4 The exit function (p: 351-352)
- C99 standard (ISO/IEC 9899:1999):
- 7.20.4.3 The exit function (p: 315-316)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.10.4.3 The exit function
参阅
引发非正常的程序终止(不清理) (函数) | |
注册一个要在调用 exit() 时调用的函数 (函数) | |
(C11) |
引发正常的程序终止但不完全清理 (函数) |