1

マニュアルページを読みました。

このリンクhttp://support.sas.com/documentation/onlinedoc/sasc/doc750/html/lr2/zid-7281.htmから理解したのは、 A successful call to execve does not have a return value because the new process image overlays the calling process image

なぜこれが起こるのか、私はあまり明確ではありませんか?また、新しいプロセスが呼び出し元のプロセスをオーバーレイする場合、失敗した場合にのみ返され、成功した場合に返されないのはなぜですか?

4

1 に答える 1

2

やろうとしていることに失敗した場合、つまりプロセスを新しいものに置き換えた場合、呼び出し元に失敗したことを通知するために戻るのが理にかなっているからです。

成功した場合、呼び出されたコードexecve()は存在しなくなり、その関数の正常な実行に置き換えられているため、明らかにそれ以上何もできません。戻るとはそういうことです。

于 2014-06-03T09:48:39.340 に答える