Code cleanups.
[TD_SE.git] / upipe / upipe.c
CommitLineData
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
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
5bb90b83 14 ssize_t nboctets;
dd9d4413 15 char *phrase = "message envoyé au père par le fils";
6f4fdc76 16 if (fork() == 0) // création d'un processus fils
dd9d4413 17 {
6f4fdc76 18 close(fd[R]); // Le fils ferme le descripteur non utilisé de lecture
dd9d4413
JB
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);
5bb90b83 28 printf("Lecture %zd octets : %s\n", nboctets, message);
dd9d4413
JB
29 // fermeture du descripteur de lecture
30 close(fd[R]);
31 }
32 return 0;
33}