问题描述
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时,代码调用fork
。fork
函数创建一个子进程并返回两次:一次返回给父进程,其pid为子,然后一次返回值为0的子。因此在这种情况下,退出值21是子进程返回的值。但这又是这个程序的意思。其他程序可以在其他情况下自由使用此值。