Hirdetés

Új hozzászólás Aktív témák

  • Gyuri16
    senior tag

    man waitpid

    POSIX.1-2001 specifies that if the disposition of SIGCHLD is set to SIG_IGN or the SA_NOCLDWAIT flag is set for
    SIGCHLD (see sigaction(2)), then children that terminate do not become zombies and a call to wait() or waitpid() will
    block until all children have terminated, and then fail with errno set to ECHILD. (The original POSIX standard left
    the behavior of setting SIGCHLD to SIG_IGN unspecified. Note that even though the default disposition of SIGCHLD is
    "ignore", explicitly setting the disposition to SIG_IGN results in different treatment of zombie process children.)

    Tehát a 2001-es POSIX szabvány szerint a signal miatt nem lesznek zombik, a waitpid pedig az összes gyereket bevárja és aztán hibát dob (vagyis nem adja vissza a status-t). Más szabványú implementáció esetén még a signal ellenére is szükséges lehet a waitpid a zombik elkerülésére.

    koszonom, ertem.
    igy viszont nem igazan vilagos mire is volt jo az, hogy beallitotta SIG_IGN-ra az elejen, hiszen ez a default ertek, es ha jol ertem akkor ezzel csak azt erte el, hogy a waitpid() az osszes gyerekre var (viszont itt mindig csak egy lesz egyszerre). tehat ha az elejen nem teszi oda a SIG_IGN-t, es a fork() utan tesz egy wait()-et, akkor nem ugyanez az eredmeny?
    a program ezen kivul nem hoz letre processzeket (kiveve, hogy a foprogram demonkent fut)

    mindenesetre majd holnap kiprobalom, hogy is mukodik ez

Új hozzászólás Aktív témák