1

フォークが作成され、2 つの if else ステートメントを使用して親プロセスと子プロセスを分離するシェル プログラムがあります。

私のサンプル プログラムはここにあり、いくつか質問があります

while(true)
{
    /* read command line input */

    x = fork();

    if( x > 0)
        {
         wait(&status);      
        }
    else
        {
         /* run the exec() command  */
        }
}

上記のコードから、フォーク後にどのステートメントが最初に実行され、親は子の exec コマンドが正常に実行されたか失敗したかをどのように認識し、親はいつ、どの条件で、どのように待機を停止しますか。また、wait(&status) コードはどのように機能しますか。

助けていただければ幸いです。

4

3 に答える 3

3

フォーク()。

これにより、 fork() システム コールがどのように機能するかがよくわかります。

于 2013-04-20T06:36:18.027 に答える