Bonjour,
J'ai un programme qui écrit le chiffre "2" dans un tube nommé :
Et un autre programme qui lit :
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 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 : 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 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à :/
Partager