Salut tout le monde!!
Bon voila, je suis débutant avec les signaux sous unix!!
Y'as 2 normes ANSI et POSIX
dans la norme ANSI on trouve signal(le_signal,fct) et dans POSIX on trouve sigaction(...)
Bon mon problème se situe dans la fonction signal.
Voila mon code:
Le problème c'est que le prgramme reste bloqué jusqu'à ce que je lui entre un entier, si les 10 seondes sont écoulé il m'affiche 'délai écoulé' sinon il m'affiche rien, par contre dans sigaction, quand les 10 secondes sont terminés (le signal est émis) il m'affiche le message 'délai écoulé'. Est ce que la fonction signal fonctionne ainsi?? ou est ce que j'ai commis une faute??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include<stdio.h> #include<signal.h> void handler(); int main() { int s; signal(SIGALRM,handler); printf("Vous avez un essaie qui dure 10 seconde au max\n"); alarm(10); scanf("%d",&s); alarm(0); } void handler() { printf("Délai écoulé"); }
Cordialement Verboz
Partager