フォーク()の戻りはerrnoを行い、私はこのように書き、簡単なプログラムを持っている: -はなぜ= 22
int main(int argc, const char * argv[])
{
printf ("Before Fork [%d][%d:%s]\n",getpid(),errno,strerror(errno));
pid_t pid = fork();
if (!pid) //CHILD PROCESS
{
printf ("In Child Process [%d [%d:%s]\n",getpid(),errno,strerror(errno));
}
else
{
while(1);
}
}
これは、出力生成: -
Before Fork [50083][0:Undefined error: 0]
In Child Process [50084][22:Invalid argument]
OSがスローなぜ誰もが知っていますがFORKの直後に無効な引数エラーがありますか?
[あなたの意見ではあなただけではありません](http://stackoverflow.com/questions/20295011/errno-set-in-child-process-after-fork-osx)その選択された答えはあなたにも当てはまります。 'fork()'が成功した場合、 'errno'に設定する特別な値はありません。それが失敗したときだけ、あなたは理由があることに頼ることができます。 – WhozCraig
明日は33 – Michi
になる可能性があります。疑問がある場合は、常に関連するマニュアルページをお読みください。この場合、[errno man page](http://linux.die.net/man/3/errno): "呼び出しの戻り値がエラー**を示した場合にのみ、その値は重要です**" – kaylum