c - C 中未使用的返回状态代码

标签 c operating-system exec

我想根据子代码的执行,通过 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/

相关文章:

c - 只有一个线程执行该函数

c - 控制台中的 dev c++ printf 错误

c - 需要在C语言中编写运行程序的调用堆栈

c++ - 产卵 child 和执行 - 未定义的行为

php - exec中的ffmpeg PHP变量不起作用

c - 绕过 execve() 的 const char* 要求

c - 将内存分配给C中的二维数组

memory-management - Intel x86-64 CPU 访问多少页表来转换虚拟内存?

multithreading - SMP 内核、进程和线程究竟如何协同工作?

operating-system - 当有人说计算机 'Hangs' 或死机时会发生什么?