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