Bonjour, j'essaye de faire un programme qui ce compose d'une boucle infinie .Quand ce dernier recoit un signal (SIGINT) il sauve la date et la valeur de la boucle(compteur)dans un fichier.Mon programme est le suivant,le pb c que je n'arrive pas à arreter la boucle en apuyant sur ALT-C.
merci d'avance
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> #include <signal.h> #include <time.h> #include <fcntl.h> /* O_RDONLY */ #include <string.h> void rien() { return; } int main (){ time_t t; char *date; FILE *pfich; //pointeur du fichier struct sigaction act; int i=0; act.sa_handler =rien;/* fonction à lancer */; sigemptyset(&act.sa_mask); act.sa_flags = 0; sigaction(SIGINT, &act, NULL); /* fin contrôle-C */ /*ouvrir le fichier de sauvegarde*/ pfich=fopen("fichier.txt","w"); /*lancer la boucle infinie*/ while (1) { i++; } sigsuspend(&act.sa_mask ); printf("vous avez appuyer sur la touche t'interruption\n"); /*recuperer la date*/ time(&t); date=ctime(&t); fprintf(pfich,"%s\n",date); printf("Fin\n"); return EXIT_SUCCESS; }
Partager