istediğim tek ebeveyn ve 4 oğul ve ben gibi bir şey yazdırmak Bunları oluşturduktan sonra:Aynı ebeveyn için 4 çocuk süreci nasıl oluşturulur ve 4 çocuğun bitmesini bekleyin?
[PID] (parent) with child processes: [PID1] [PID2] [PID3] [PID4]
ve hepsi bitirmek için üst bekler.
Bu kodu (How to use Fork() to create only 2 child processes?) bir döngüde veya benzer bir şekilde kullanabilir miyim?
main()
{
int pid, state, loop1=4, loop2, i=1, j;
printf(" Parent before fork()\n");
if ((pid=fork()) !=0)
{
ParentPID=pid;
wait(&state);
}
else
{
while(loop1!=0)
{
execl("child", 0);
a[i]=pid;
loop1--;
i++;
}
}
printf("Parent after fork()\n");
for (j=1; j<i; ++j)
{
printf ("PARENT_PID:"%d" CHILD_PID[" %d "]= "%d,ParentPID, j, a[i]);
}
//printf("\tId process child=%d; finished with %d=%x\n",pid,state,state);
}
main()
{
int pid;
printf("Child: the execution starts \n");
pid=getpid();
printf("Child: %d execution finished\n", pid);
exit(pid);
}
Eğer çağırmanız gerekir o zaman X çocukları istiyorsanız [ “fork”] (http://man7.org/linux/man-pages/man2/fork.2.html) Ana işlemde * x kez *. Bunu ayrı ayrı yaparsanız veya bir döngüde farketmezse, önemsiz olan kısım, bunu ana süreçte yapmanızdır. –
Ebeveyn sürecinin "içinde" ile ne demek istiyorsun? Bana bir örnek verebilir misiniz? – Marko
[Çatalın] (http://man7.org/linux/man-pages/man2/fork.2.html) çağrısının ne yaptığını biliyor musunuz? Ebeveyn veya çocuk süreçlerinde olup olmadığınızı nasıl kontrol edeceğinizi (ya da ['fork'] olup olmadığını nasıl kontrol edeceğinizi biliyorsunuz (http://man7.org/linux/man-pages/man2/fork.2.html) başarısız oldu)? –