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