per essere possibile, e' possibile..Originariamente inviato da raistlin76
Ciao a tutti,
ho una domanda, la funzione alarm() puo' essere richiamata da un programma dopo che una precedente alarm è gia' scaduta?Mi spiego meglio con sto esempio:
main()
{
int sig;
signal(SIGALRM,help);
if (setjmp(main_loop))
{
printf("JUMP\n");
}
printf("PROCESS IS WAITING...\n");
alarm(2);
sleep(3); //Il timeout scade sempre
printf("USCITA\n");
}
void help(int val)
{
printf("SIGALRM RECEIVED\n");
longjmp(main_loop,0);
}
Il programma dà questo output:
PROCESS IS WAITING...
SIGALRM RECEIVED
JUMP
PROCESS IS WAITING...
USCITA
![]()
![]()
![]()
![]()
Non dovrebbe continuare all'infinito nel seguente modo?:master: :master:
PROCESS IS WAITING...
SIGALRM RECEIVED
JUMP
PROCESS IS WAITING...
SIGALRM RECEIVED
JUMP
PROCESS IS WAITING...
e via cosi' all'infinito??
ma non mi ricordo come..
mi pare devi chiamare 2 volte l'alarm..
comunque guardo a casa..
avevo fatto un processo che stampava l'ora in background ogni 30
secondi finche' non si killava da console..