当程序在执行某个函数时出现错误,如果该错误会导致后续步骤无法正常进行,应该在错误发生时立即终止程序的执行,而不是让程序继续运行下去。
在 Linux 系统下,进程正常退出除了可以使用return之外,还可以使用exit、_exit以及_Exit。
1.3.5.1 exit
该函数是一个标准C库函数,函数会执行一些清理工作,最后调用_exit()函数终止进程。
1.头文件
#include <stdlib.h>
2.函数原型
void exit(int status);
3.参数
status:表示程序退出的返回值。
4.返回值
无。
5.示例
| #include <stdio.h>
#include <stdlib.h> #include <errno.h> int main() { FILE *fp = fopen("exit", "r"); if (!fp) { perror("exit test"); printf("errno1= %dn", errno); exit(errno); } fclose(fp); printf("errno2= %dn", errno); exit(errno); } |
6.编译运行并查看测试结果
| exit test: No such file or directory
errno1= 2 |
1.3.5.2 _exit和_Exit
这两个函数都是系统调用,函数会在不执行exit()的清理操作的情况下立即终止调用的进程,它不刷新I/O缓冲区,也不关闭打开的文件描述符。
1.头文件
#include <unistd.h>和#include <stdlib.h>
2.函数原型
void _exit(int status); 和 void _Exit(int status);
3.参数
status:表示程序退出的返回值。
4.返回值
无。
5.示例
与exit相同,仅换成_exit和_Exit。
372