Prince_81
20-06-2011, 07:36
ciao a tutti,
ho creato un piccolo programmino per provare la funzione alarm() ma all'atto pratico non invia il segnale SIGALRM al processo invocante sapreste dirmi come mai? magari ho sbagliato qualcosa !!!!
#include<stdio.h>
#include<signal.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#define INTERVALLO 10
static void siguser(int);
int main(int argc,char *argv[],char *envp[]){
signal(SIGALRM,siguser);
int flag;
unsigned int a;
printf("digita 1 per sigalrm\n");
scanf("%d",&flag);
if(flag==1){
printf("attendi tot secondi\n");
a=alarm(INTERVALLO);
printf("alarm %d\n",a);
}
return 0;
}
static void siguser(int signo){
if(signo==SIGALRM){
printf("segnale sigalrm ricevuto\n");
exit(1);
}
}
ho creato un piccolo programmino per provare la funzione alarm() ma all'atto pratico non invia il segnale SIGALRM al processo invocante sapreste dirmi come mai? magari ho sbagliato qualcosa !!!!
#include<stdio.h>
#include<signal.h>
#include<sys/types.h>
#include<unistd.h>
#include<stdlib.h>
#define INTERVALLO 10
static void siguser(int);
int main(int argc,char *argv[],char *envp[]){
signal(SIGALRM,siguser);
int flag;
unsigned int a;
printf("digita 1 per sigalrm\n");
scanf("%d",&flag);
if(flag==1){
printf("attendi tot secondi\n");
a=alarm(INTERVALLO);
printf("alarm %d\n",a);
}
return 0;
}
static void siguser(int signo){
if(signo==SIGALRM){
printf("segnale sigalrm ricevuto\n");
exit(1);
}
}