Programovani - fork, exec a spol.
David Sauer
davids na iol.cz
Čtvrtek Leden 7 13:34:49 CET 1999
>>>> "Petr" == Petr Novotny <Petr.Novotny na antek.cz> writes:
Petr> Dobry den,
Petr> to, na co se ptam, je pravdepodobne "Unix programming 101", jenze ja
Petr> jsem Windowsak :-)
Petr> 1. Chci v aplikaci provest neco jako fork/exec. Konstrukce tusim
Petr> vypada
Petr> pid_t pid=fork();
Petr> if (pid==0)
Petr> { // jsem dite
Petr> }
Petr> else if (pid==-1)
Petr> { // a sakra!
Petr> }
Petr> else
Petr> { // jsem rodic
Petr> }
Petr> Je to tak? No, a ted hlavni, o co mi jde: Jak zaridim, aby se mi
Petr> (kdyz child zavola exec()) to nevyzombilo? Kdyz rodic zavola
Petr> waitpid(), tak to si moc nepomuzu, to uz rovnou mohl rodic
Petr> spawnovat... Chci se jen umyt a jit - pardon, chci odforkovat dite a
Petr> zapomenout, ze nejake bylo. Jak je spravna konstrukce? (Ma to byt
Petr> "komponenta", takze instalace nejakych signal handleru nepada v
Petr> uvahu.)
Myslim, ze jedina moznost je, aby parent provedl 'signal(SIGCLD,
SIG_IGN)'. Tim oznami, ze nema o exit status potomka zajem. Pokud
to nemuze udelat, jak moc vadi ty zombie ?
--
* David Sauer, student of Czech Technical University
* electronic mail: davids na iol.cz (mime compatible)
Další informace o konferenci Linux