Bonjour,
Je fais de la programmation c sous linux
je dois ecrire un programme qui "Permet de creer un processus fils. Ce dernier lit 10 carracteres en entrée standard et les envoit via un pipe à son pere . le pere va les lire er les affiche à l' écran"

J'ai écrit ce code
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
37
38
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
void main()
{
int i,pid,T[2];
int tab1[10],tab2[10];
pipe(T);
 
pid=fork();
if( pid == -1)
 { printf ("\nErreur echec de fork\n");
 exit(1);
 }
 if (pid==0)
 {
  printf ("Je suis le Fils\n");
   close( T[0]);
  for ( i=0;i<5;i++)
    {
      printf("\n\nDonner le caractère de numéro %d\n",(i+1));
      scanf("%d",&tab1[i]);
    }
  write(T[1],tab1,10);
  close(T[1]);
 }
 
printf ( "PERE\n");
 read( T[0],tab2,10);
printf("Début affichage FILS---------------------------------------------------------\n");
 for ( i=0;i<5;i++)
    {
      printf("\nle caractère  numéro %d est i = %d\n",(i+1),tab2[i]);
    }
 
 close(T[0]);
exit(1);
}
le probleme c'est qu'il ya deux affichages mais j comprend pas pourquoi

Merci de m'aider