exit()函数的目的是终止程序的执行。 “ return 0” (或EXIT_SUCCESS )表示代码已成功执行,没有任何错误。退出代码不是“ 0” (或EXIT_FAILURE ),表示代码中存在错误。在所有的退出代码,所述代码1,2,126 – 165和255具有特殊的含义,并因此这些应避免用于用户定义的退出代码。
句法
void exit(int return_code)
注意:还应考虑到值大于255的退出代码将返回以256为模的退出代码。
例如:如果执行语句exit(9999),则它将执行exit(15)为9999%256 = 15。
一些退出代码是:
- exit(1):表明程序异常终止,可能是代码中的一个小问题。
- exit(2):与exit(1)类似,但在发生严重错误时显示。这种说法很少见。
- exit(127):表示找不到命令。
- exit(132):这表明程序被中止(收到SIGILL ),可能是由于非法指令的结果,或者二进制文件可能已损坏。
- exit(133):表明程序被中止(接收到SIGTRAP ),可能是由于整数被零除的结果。
- exit(134):表明可能是由于断言失败导致程序中止(收到SIGABRT )。
- exit(136):表明程序中止(接收到SIGFPE ),可能是由于浮点异常或整数溢出造成的。
- exit(137):表明程序占用了太多内存。
- exit(138):表明可能是由于未对齐的内存访问而导致程序中止(收到SIGBUS )。
- exit(139):指示分段错误,这意味着程序正在尝试访问未分配给它的内存位置。这通常在使用指针或尝试访问越界数组索引时发生。
- exit(158/152):表明可能是由于超出了CPU时间限制而中止了程序(已接收到SIGXCPU )。
- exit(159/153):表明程序已中止(收到SIGXFSZ ),可能是由于超出文件大小限制导致的。
因此,各种退出代码可帮助用户调试代码。例如,如果收到退出代码139 ,则表示该代码存在分段错误,因此可以相应地调试该代码。
程序1:
下面的程序将给出细分错误:
// C++ program to demonstrate Segmentation Fault
#include
using namespace std;
// Driver Code
int main()
{
// An array of size 100
int arr[100] = { 0 };
// When we try to access the array out
// of bound, it will give Segmentation Fault
cout << arr[100001];
return 0;
}
输出:
以下是上述程序的输出:
程式2:
下面的程序将给出浮点错误:
// C++ program to demonstrate
// Floating Point Error
#include
using namespace std;
// Driver Code
int main()
{
int a = 1, b = 0;
// When we try to divide by zero
// it should give SIGFPE
cout << a / b;
return 0;
}
输出:
以下是上述程序的输出:
程序3:
下面的程序将给出超过时间限制:
// C++ program to demonstrate TLE
#include
using namespace std;
// Driver Code
int main()
{
// Below statement will give time
// limit exceeded as well as memory
// limit exceeded due to infinite loop
for (;;) {
int arr[10000];
}
return 0;
}
输出:
以下是上述程序的输出:
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。