Bonjour,
je viens de me lancer dans l'utilisation de tubes, mais il me manque de la doc.
Quelqu' un connaît-il un tuto à ce sujet ?
J'ai codé un petit programme pour tester, mais il ne marche pas comme je le souhaite.
Il me renvoie :
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 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <string.h> int main() { int tube[2]; char buffer[100]; char tmp[100]; int i; pid_t pid[5]; pipe(tube); for(i=0;i<5;i++) { pid[i]=fork(); switch (pid[i]) { case -1 : perror("fork"); exit(1); case 0 : close(tube[0]); sprintf(tmp,"je suis le fils n° %d\n",i); write(tube[1],tmp,strlen(tmp)+1); close(tube[1]); exit(0); default : close(tube[1]); read(tube[0],buffer,sizeof(buffer)); printf("chaine lue de %d : %s \n",i,buffer); bzero(buffer,sizeof(buffer)); close(tube[0]); } } return 0; }
Je ne comprends pas vraiment, faudrait-il que je prenne un tableau de 6 tubes dans mon cas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 chaine lue de 0 : je suis le fils n° 0 chaine lue de 1 : chaine lue de 2 : chaine lue de 3 : chaine lue de 4 :
et puis écrire dans tube[i+1] dans le fils ? ( j'ai essayé, mais ça ne marche pas non plus, mais peut-être je m'y suis mal pris )
Partager