Пожалуйста, кто-нибудь объяснит мне, какова цель цикла (с его wait ()) в строке B? - PullRequest
0 голосов
/ 03 мая 2018

Что означает строка B? Я разворачиваю процесс 10 раз, отображение идентификаторов процесса, затем вызов wait() 10 раз.

#include <stdio.h>
#include <unistd.h>

// Fork the process 10 times
for(i = 0; i < 10; i++) {

  // Catch the PID
  if (pid = fork() < 0)
    // error
  else if (pid == 0) {

  function_A();

  return 0;
}

  printf(“process ID: %d \n”, pid); // Line A

}

for(i = 0; i < 10; i++) //Line B

wait();

1 Ответ

0 голосов
/ 03 мая 2018

fork() пинки дочерних процессов асинхронно. Это означает, что они запускаются и отбрасываются на задний план.

wait() говорит компьютеру «дождаться» их окончания.

Итак, родительский процесс ожидает завершения дочерних процессов перед продолжением выполнения.

https://www.geeksforgeeks.org/wait-system-call-c/

...