私はリチャード・スティーブンスの「UNIX 環境での高度なプログラミング」を読んでいて、このトピックを見つけました。
*8.13. システム機能
*****システムは fork、exec、waitpid を呼び出すことで実装されるため、戻り値は 3 種類あります。**
1. fork が失敗するか、waitpid が EINTR 以外のエラーを返した場合、システムはエラーを示すために errno を設定して -1 を返します。
2. シェルが実行できないことを意味する exec が失敗した場合、戻り値はシェルが exit(127) を実行したかのようになります。
**3. それ以外の場合、fork、exec、waitpid の 3 つの関数はすべて成功し、system からの戻り値は、waitpid に指定された形式のシェルの終了ステータスになります。
私の理解では、 cmdstring 名でプロセスをfork()し、exec()で親プロセスから分離します。
しかし、waitpid() 関数がsystem() 関数呼び出しの一部であることがわかりませんか?
以下のリンクのあいまいなコンストラクター呼び出しは、オブジェクトの作成中に正しい答えを提供しませんでした。