0

そのため、改訂中に次のコードを見ました。wait() によって親が子が停止するのを待つことは知っていますが、これに関していくつか質問があります。

まず、子が作成されると、親が続行し、x 値を変更し、if ステートメントの後に THEN を待機するという私の仮定は修正されますか?

第二に、子が実行を続けて wait() に到達すると、何が起こるでしょうか? 何も待つ必要がないので、これは無視されますか?

       #include <sys/types.h>
       #include <stdio.h>
       #include <unistd.h>
       int main() {
         int x = 1;
          pid_t pid = fork();
         if (pid == 0) {
             x = x * 2;
         } else if (pid > 0) {
             x = 3;
         }
         wait();
         // Print the value of x to the console
         printf("%d\n",x);
       }
4

1 に答える 1

0

子の実行の開始時に wait() の呼び出しを試すことができます。このプロセスに子がなくなると、呼び出しは単純に無視されます。

于 2013-04-20T00:52:15.707 に答える