-2

フォークで最初に何が実行されるかわかりません。たとえば、次のコードがあります。

int main() {
   int n = 1;
   if(fork() == 0) {
      n = n + 1;
      exit(0);
   }
   n = n + 2;
   printf(“%d: %d\n”, getpid(), n);
   wait(0);
   return 0;
}

これは画面に何を出力しますか?

1: 3
0: 4

また

0: 4
1: 3
4

3 に答える 3

0

あるプロセスを他のプロセスより先に実行させたい場合は、sleep() システム コールを使用してみてください。

于 2013-06-30T08:51:41.780 に答える