首页 > 解决方案 > exit(21) 代表什么?可以用 exit(1) 代替吗?

问题描述

代表什么exit(21)?可以用 exit(1) 代替吗?我试图理解退出代码,但我根本找不到这个问题的答案。

我附上了示例代码。

for(i=1;i<argc;i++)
    {
        r= fork();
        if(r==0)
        {
            display(i);
            exit(21);
        }

标签: cexit-code

解决方案


程序的退出代码用于确定程序是成功还是失败,如果失败则说明原因。通过将值传递给exit函数或从main函数返回值来指定程序的退出代码。

按照惯例,退出值 0 表示成功,而大于 0 的值表示失败。至于特定退出值的含义,由所讨论的程序定义并且(除了 0 表示成功)对于每个程序都是不同的。

您需要更多地查看使用退出值 21 的代码,以了解该代码的含义。

在您提供的代码示例中,代码调用exit(21)whenfork返回 0。该fork函数创建一个子进程并返回两次:一次返回父进程的 pid,一次返回值为 0 的子进程。所以在这种特殊情况下,退出值 21 是子进程返回的值。但同样,这是针对这个程序的。其他程序可以自由地将此值用于其他情况。


推荐阅读