Commit | Line | Data |
---|---|---|
dd9d4413 JB |
1 | #include <sys/types.h> // pour les types |
2 | #include <unistd.h> // pour fork, pipe, read, write, close | |
3 | #include <stdio.h> // pour printf | |
4 | #include <string.h> | |
5 | ||
6 | #define R 0 | |
7 | #define W 1 | |
8 | ||
9 | int main() | |
10 | { | |
11 | int fd[2]; | |
12 | pipe(fd); // création d'un tube anonyme | |
13 | char message[100]; // pour récupérer un message | |
14 | int nboctets; | |
15 | char *phrase = "message envoyé au père par le fils"; | |
16 | if (fork() == 0) //création d'un processus fils | |
17 | { | |
18 | close(fd[R]); //Le fils ferme le descripteur non utilisé de lecture | |
19 | // dépôt dans le tube du message | |
20 | write(fd[W], phrase, strlen(phrase) + 1); | |
21 | close(fd[W]); // fermeture du descripteur d'écriture | |
22 | } | |
23 | { | |
24 | // Le père ferme le descripteur non utilisé d'écriture | |
25 | close(fd[W]); | |
26 | // extraction du message du tube | |
27 | nboctets = read(fd[R], message, 100); | |
28 | printf("Lecture %d octets : %s\n", nboctets, message); | |
29 | // fermeture du descripteur de lecture | |
30 | close(fd[R]); | |
31 | } | |
32 | return 0; | |
33 | } |