[ LUGOS ] Fork vprasanje...

Ales Horvat ales.horvat na nevtron.si
Sob Jul 11 20:54:06 CEST 1998


Boris Benko wrote:

> Kako kontrolirati, koliko trenutno forkanih sinov se aktivno tece?

Jaz delam takole: globalna spremenljivka za stevilo procesov; za vsak
fork() povecam stevilko (pazis da se ti to ne zgodi pri ocetu in sinu -
i.e. if(fork()) num++;). Nato pa s signalom SIGCHLD lovim
koncane/ubite/.. procese.

Fragment kode je nekaj takega:

...
#include <signal.h>
#define MAXCHILD 5
int numchlds=0;

void mysignalhandler(int sigv){
   numchlds--;
}

void main(){ // ali pac kjer rabis...
   int st;
   void (*oldsignalhandler)(int);
   oldsignalhandler=signal(SIGCHLD, mysignalhandler);
  
   if (numchlds<MAXCHILD){
      st=fork();
      if (st) numchlds++;
   }

... blahblah

}


Emm.. :) to sem spisal na pamet. Napake so mozne. Vazen je koncept. :)

Bye,
	A.




Dodatne informacije o seznamu Starilist