[ 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