Jak nezombifikovat proces

Tomas Vasko vasko na redbull.dcs.fmph.uniba.sk
Čtvrtek Říjen 8 17:47:24 CEST 1998


Veros Kaplan <xkaplan na informatics.muni.cz> wrote:

> Mam problem, vyrobil jsem si nasledujici program:

> main(){
>      otevrit_soket
>      while(1) {
>           listen na ten soket
>           newsock = accept ;
>           if (fork == 0) {
>                obsluz pozadavek
>                exit (0);
>           }
>           waitpid (-1, NOHANG)
>      }
> }

mno;
on ked nejaky child konci parent obdrzi SIGCHLD. da sa to teda ohandlovat
tak ze sa jednoducho nastavi sighandler na nejaku fciu kde sa 
vola waitpid(-1,NOHANG); 
ak sa obsluha nastavi obycajnym signal() tak funkcia accept bude prerusena a
povie nieco v zmysle: accept: Interrupted system call. toto sa zrejme da obist
nastavovanim handlera funkciou sigaction(), tusim je tam nejaky flag typu
restartsystemcall.

		tomas

-- 
Beware of bugs in the above code; I have only proved it correct, not tried it.
                                                  -- Donald Knuth


Další informace o konferenci Linux