📜  C / C++中的退出代码(带示例)

📅  最后修改于: 2021-05-28 03:49:21             🧑  作者: Mango

exit()函数的目的是终止程序的执行。 “ return 0” (或EXIT_SUCCESS )表示代码已成功执行,没有任何错误。退出代码不是“ 0” (或EXIT_FAILURE ),表示代码中存在错误。在所有的退出代码,所述代码1,2,126 – 165255具有特殊的含义,并因此这些应避免用于用户定义的退出代码。

句法

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基础课程》。