我想根据子代码的执行,通过 exit() 将一个唯一的状态代码从子进程返回到等待中的父进程。如果 execvp 失败,则使用 exit()。我假设如果 execvp 成功,执行的命令将发送其状态代码。
pid=fork();
if(pid==0)
{
if(execvp(cmdName,cmdArgs)==-1)
{
printf("Exec failed!\n");
exit(K); //K?
}
}
waitpid(pid,&status,0);
假设传递给 execvp() 的命令是“ls”,手册页说它可能返回 0(成功)、1 或 2(失败)。
我可以使用什么安全的唯一值 K 来指示子进程的返回状态,该值不会与 execvp() 执行的命令返回的任何值发生冲突?
最佳答案
由于显而易见的原因,不可能有这样一个永远不会与任何其他程序的返回状态发生冲突的 K 值。
证明:假设有这样一个K,你让你的程序调用自己...
关于c - C 中未使用的返回状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658510/