Macでコードを実行していて、execから255のリターンコードを取得しています。 コードは次のとおりです。exec return 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を取得します。
'printf("%s \ n " strerror(errno)); '' execvp'の呼び出しの後(常に '-1'を返します。成功した場合は戻りません)。 –
'perror()は何と言っていますか? 'execve'のmanページには、失敗する可能性のある大きな理由のリストがあります。 –
['execvp'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html)!= [' fork'](http://pubs.opengroup.org/onlinepubs/9699919799/functions /fork.html) – pmg