exit21代表什么?可以用exit1代替吗?

问题描述

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

我已经附上了示例代码

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

解决方法

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

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

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

在您提供的代码示例中,当exit(21)返回0时,代码调用forkfork函数创建一个子进程并返回两次:一次返回给父进程,其pid为子,然后一次返回值为0的子。因此在这种情况下,退出值21是子进程返回的值。但这又是这个程序的意思。其他程序可以在其他情况下自由使用此值。