// Arlotto 2009: Exemple d'utilisation de alarm // Maintenant utiliser de préférence sigaction() // plutôt que signal() #include #include #include volatile int g = 0 ; void tempo(int sig ) { printf("Recu signal %d\n",sig);// on ne devrait pas appeler printf dans un gestionaire de signal g=1 ; // car elle n'est pas réentrante. } int main(void) { int i=0; signal(SIGALRM,tempo); // fonction tempo exécutée sur réception signal ALRM while(i<4) { alarm( i + 3 ); // génère un signal ALRM dans i+3 secondes g=0; printf("Attente tempo pendant %ds\n",i+3); while ( g==0 ) ; // bloque tant que tempo pas exécutée. printf("ok\n"); i++; } return 0 ; }