C C++中exit(0)和exit(1)的区别
exit是 C/C++ 语言中的跳转语句,它采用整数(零或非零)来表示不同的退出状态。
C/C++中有两种退出状态:
1. 退出成功: 退出成功由 exit(0) 语句表示,表示程序成功终止,即程序已执行,没有任何错误或中断。
示例代码:
#include <file.h>#include <stdio.h>int main(){ FILE* file; // opening the file in read-only mode file = fopen("myFile.txt", "r"); printf("File opening successful!"); // EXIT_SUCCESS exit(0);}注意:创建一个名为“myFile.txt”的文件并在本地设备中运行代码以查看输出。
2. 退出失败: 退出失败由 exit(1) 表示,表示程序异常终止,即发生了一些错误或中断。可以使用 1 以外的不同整数来表示不同类型的错误。
示例代码:
#include <file.h>#include <stdio.h>int main(){ FILE* file; // open the file in read-only mode file = fopen("myFile.txt", "r"); if (file == NULL) { printf("Error in opening file"); // EXIT_FAILURE exit(1); } // EXIT_SUCCESS exit(0);}下面来看看这两种说法之间的区别——
| exit(0) | exit(1) |
|---|---|
| 报告程序成功终止/完成。 | 报告程序异常终止。 |
| 当程序执行没有任何错误时报告终止。 | 在程序执行过程中发生错误或中断时报告终止。 |
| 语法是 exit(0); | 语法是 exit(1); |
| exit(0) 的使用是完全可移植的。 | exit(1) 的使用是不可移植的。 |
| 用于返回码 0 的宏是 EXIT_SUCCESS | 用于返回码 1 的宏是 EXIT_FAILURE |
| EXIT_SUCCESS 由标准定义为零。 | EXIT_FAILURE 不受标准限制为一,但许多系统确实将其实现为一。 |
