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??