Bonjour,
Dans le cadre de mes tests sur les tubes nommés j'ai créer les programmes suivants:
1/Programme reader qui écrit dans le tube:
1/Programme writer qui lit depuis le tube:
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 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> int main(){ int fd; char msg[20]; mkfifo("connexiontube",0644); fd=open("connexiontube",O_RDONLY); read(fd,msg,strlen(msg)); printf("%s",msg); close(fd); return 0; }
les deux programmes se compile bien et s'exécute bien.
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 #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> int main(){ int fd; char msg[20]; printf("Saisissez un mot:"); scanf("%s",msg); fd=open("connexiontube",O_WRONLY); write(fd,msg,strlen(msg)); close(fd); return 0; }
Je lance les deux programme, puis je saisis un mot mais lors de l'affichage le programme reader m'affiche juste le premier caractère de la chaine entrée![]()
donc ma question est :
Comment faire pour récupérer toute la chaine ?
dans le programme reader et après l’exécution de la fonction read() que contient la valeur de msg ?
Merci pour votre aide
Partager