Bonjour,
J'ai un programme qui écrit le chiffre "2" dans un tube nommé :
Et un autre programme qui lit :Code:
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 int afficher(int message) { FILE *fp; int nb_elem; fp=fopen("tube", "w"); if (fp == NULL) { printf("erreur ouverture\n"); return -1; } nb_elem=fwrite(&message, sizeof(int), 1, fp); if (nb_elem != 1) printf("erreur d'écriture"); fclose(fp); } int main(void) { int a; a=afficher(2); return 1; }
Mon problème : Si je vire le While, ça marche (mon terminal de réception affiche bien "2"), et si je ne le vire pas, ça ne marche pas (il n'affiche rien et reste bloqué). Pourquoi ?Code:
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 int main () { FILE *fp; int i=1,a=0; int nb_elem; fp=fopen("tube", "r" ); if (fp == NULL) printf("erreur d'ouverture"); //while(1) //{ nb_elem=fread(&i, sizeof(int), 1, fp); if (nb_elem == -1) printf("erreur de lecture"); if (i != 1) { printf("%d",i); i=1; } //} fclose(fp); return 1; }
Merci de votre aide, je suis vraiment perdu là :/