[ LUGOS ] fork

Matjaz Terpin matjazt na comcom.si
Pon Jun 22 07:34:18 CEST 1998


On Sun, 21 Jun 1998, Metod Koželj wrote:

> Howdy!
> 
> On Sat, 20 Jun 1998, polz wrote:
> 
> > 1. Ce proces forkam, kako naj cim eleganteje poskrbim da umre, 
> > 	ko umre stars?
> 
> Funkcija fork (glej man 2 fork) vrne dva razlicna rezultata. V starsevskem
> procesu vrne PID otroka, v otroskem procesu pa 0.
> 
> Torej mora stars, preden izdihne, izvesti funkcijo kill (man 2 kill), ki
> ji kot parameter das PID otroka.
> 
> > 2. Ko se child zakljuci, mi ostane zombie. Kako naj starsu povem, 
> > 	da je otrok mrtev?
> 
> Stars lahko pogleda, ali otrok se zivi. To naredis s funkcijo waitpid in
> ustreznimi parametri (man 2 waitpid; recimo
> 
>     if (waitpid (child, (int *) NULL, WNOHANG)!=child)
> 	fprintf (stderr, "Child PID=%d still runing.\n", child);
> 
> ).
Se ena varianta:
procesu moras eksplicitno povedati, naj ignorira signal SIGCHLD,
npr.

  signal(SIGCHLD,SIG_IGN);

To bi moralo prepreciti nastajanje zombijev.

LP!

Matjaz

------------------------------------------------------------
 Matjaz Terpin  
 COMCOM d.o.o.,  Vojkova 4,  5280 Idrija,  Slovenija  
 ++386 (0)65 172 020

 matjaz.terpin na comcom.si
------------------------------------------------------------




Dodatne informacije o seznamu Starilist