Moderatore: Staff








#include<stdio.h>
#include<stdlib.h>
#include<sched.h>
#include<signal.h>
#include<unistd.h>
int flag=5;
int clone_function(){
while(1){
pause();
printf("Sono nella clone..\n");
}
_exit(0);
}
void gestore_segnale(){
printf("Gestore Decremento\n");
flag--;
}
int main(int argc,char **argv){
char stack[1024];
int i;
signal(SIGUSR1,gestore_segnale);
int pid=clone(clone_function,&stack[1024],CLONE_VM,NULL);
for(i=0;i<5;i++){
printf("Invio un segnale..\n");
kill(pid,SIGUSR1); //invio 5 segnali intervallati da attese di 2 secondi
sleep(2);
}
printf("Elimino il clone..\n");
kill(pid,SIGKILL);
printf("Flag %d\n",flag);
return 0;
}
printf("Invio un segnale..\n");

Visitano il forum: Google [Bot] e 1 ospite