Comment faire un fork() le nombre exact d'enfants

Donc je suis en train de travailler sur un programme qui permettra de faire une certaine tâche à plusieurs reprises. J'ai écrit le programme une fois déjà à l'aide de threads, mais maintenant, je suis tenu de le faire à l'aide de processus avec fork().

Avec les fils, je serais tout simplement de créer le nombre de threads, demandez-leur d'exécuter une fonction (la modification d'une variable en mémoire partagée), et enfin exécuter quelque chose que l'habitude de la valeur finale de la mémoire partagée.

Mais maintenant je veux faire la même chose, mais je ne suis pas sûr de la façon de le faire, car à chaque fois que je l'appel fork() pour l'essentiel, de double de lui-même. Alors, évidemment, si je l'appelle fork() dans un forloop, chaque parent et l'enfant peut passer à travers la boucle de l'appel fork() sur leur propre.

Donc ma question en un mot:
comment pourrais-je créer un nombre exact d'enfants de processus avec fork (disons que j'ai besoin de 5 enfants), et de mon processus parent attendre jusqu'à ce que ces 5 sont effectuée en cours d'exécution avant de passer?

Merci pour l'aide!

Chaque enfant sait que c'est l'enfant; assurez-vous qu'il ne fait les choses qu'un enfant est censé faire (aller à l'école?) et assurez-vous qu'il quitte sans continuer là où le processus parent est en cours d'exécution (au travail?). Comme avec la réponse par des niculare, ou Quentin.

OriginalL'auteur pledgehollywood | 2013-03-10