Bonjour à tous
s'il vous plaît je voudrais Lire le contenu d'un fichier l'ecriture dans un tube et l'afficher j'ai ecri 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
#include  <stdio.h>
#include  <stdlib.h>
#include  <unistd.h>
 
int main(int  agrc,char* argv[])
 { 
   int tube[2];
   int  fichier;
   char c;
   pipe(tube);
  /* Ouverture du Fichier */
   fichier=open(argv[0],"r");
   if(fichier<0)
    {
       printf("Erreur  d'ouverture du  fichier\n");
	 exit(1);
    }else{
 
       close(tube[0]); //Fermeture du tube en lecture
       open(tube[1]);  //Ouverture du tube  en Ecriture
        while (read(fichier,&c,1)>0){
          write(tube[1],&c,1);           
        }
      close(tube[1]);   //Fermeture du tube  en Ecriture
 
      close(fichier);   // Femeture du fichier
 
      close(tube[1]);  //Fermeture du tube en Ecriture
      open(tube[0]);   //Ouverture du tube  en lecture
 
        while (read(tube[1],&c,1)>0){
          write(0,&c,1);   
          close(tube[0]); //Fermeture du tube en lecture 
        }
     }
 }
Quand je l'execute j'ai erreur d'ouverture du chier

mais quand je retire tout le bout de code dans le else

j'ouvre le fichier sans soucci

je ne comprend pas pourquoi

Merci de m'aider à comprendre