Paralelní programování - funkce wait
Dobrý den,
prosím vás, pomocí funkce proces_id = fork() vytvořím nový proces a odkloním ho od hlavního procesu. Funkce wait(proces_id) v hlavní (rodičovskem) procesu by měla zařídit, aby hlavní proces počkal na ukončení podřízeného procesu a pak pokračoval dál.
Jak ale zapsat funkci wait(), když vytvořím více procesů a chci, aby rodičovský proces počkal na ukončení všech podřízených procesů a teprve potom pokračoval dál.
Děkuji předem za každou radu.
Nebylo by špatné naznačit, v čem to píšeš.
Zapomněl jsem, program je napsaný v C.
No tak to vidime ale jake vyvojove prostredie a pre jaky OS atd? Predpokladam ze to pises pre gcc a aplikaciu v linuxe, ci nie?
Přesně tak.
No wait caka na ten prvy child, a ked druhy child vytvoril prvy child tak moze cakat on na druhy atd :) Normalnejsie je pouzit waitpid a v cykle overit ze skoncili vsetky, neviem ci je to ale 100% "safe".
K waitpid viz napr. http://www.yolinux.com/TUTORIALS/ForkExecProcesses .html alebo google p.s. alebo man pages http://man.yolinux.com/cgi-bin/man2html?cgi_comman d=wait&cgi_section=2&cgi_keyword=m
Nedá se vytvořit nějaká "skupina procesů", která by byla označena skupinovým ID a funkce wait() by potom čekala na ukončení této skupiny?