【发布时间】:2023-03-26 20:45:01
【问题描述】:
我的代码在 Mac 上运行,我从 exec 获得 255 返回码。 以下是代码:
ret = execvp(pArgs[0], pArgs);
if (ret < 0)
{
ret = errno;
exit(ret);
return false;
}
else if (processId < 0)
{
// fork() failed
return false;
}
else if(Wait)
{
// forked successfuly so wait for exit
if(waitpid(processId, &childstatus, 0) == processId)
{
// codesign command terminted, get return code
if(WIFEXITED(childstatus))
{
if(pCmdRetStatus != NULL)
*pCmdRetStatus = WEXITSTATUS(childstatus);
}
}
}
关于为什么要使用 255 有什么想法吗?本质上是一个 hdiutil 调用,很多时候,我得到 255。
【问题讨论】:
-
如果你在调用
execvp之后加上printf("%s\n", strerror(errno));,你会得到什么(顺便说一句,如果它返回,它总是会返回-1——如果成功,它不会返回) . -
perror()说什么?execve手册页列出了很多可能失败的原因。