Code cleanup.
[TD_SE.git] / upipe / upipe.c
... / ...
CommitLineData
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
9int 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 ssize_t 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 %zd octets : %s\n", nboctets, message);
29 // fermeture du descripteur de lecture
30 close(fd[R]);
31 }
32 return 0;
33}