IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lecture d'un fichier - Ecriture dans un tube - affichage


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Points : 42
    Points
    42
    Par défaut Lecture d'un fichier - Ecriture dans un tube - affichage
    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

  2. #2
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Bonsoir.
    Je crois que tu devrais relire la documentation des fonctions que tu utilises...
    man.developpez.com

    La fonction pipe() crée un tube de communication, et ouvre les deux « extrémités ».
    Ce n'est donc pas la peine de les rouvrir ensuite !
    Ou plutôt, il ne faut pas le faire.
    De toute façon, la manière dont tu le fais n'a aucune chance de fonctionner.
    C'est très probablement de là que vient l'erreur rencontrée.

    Lorsque l'on ferme une extrémité d'un tube, c'est définitif.
    On ne peut plus la rouvrir.
    Il ne faut donc fermer une extrémité que lorsque l'on n'en a plus besoin.

    Sinon, et ce n'est qu'un conseil, si tu tiens à manipuler les flux d'entrée/sortie standard par leurs descripteurs de fichiers, utilise les constantes correspondantes :
    • STDIN_FILENO pour l'entrée standard (stdin) ;
    • STDOUT_FILENO pour la sortie standard (stdout) ;
    • STDERR_FILENO pour la sortie d'erreur standard (stderr).

Discussions similaires

  1. Aide lecture Port serie et ecriture dans fichier.
    Par Mike1979 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/05/2015, 11h41
  2. probleme lecture et ecriture dans les tube nommés
    Par El-Patron dans le forum POSIX
    Réponses: 0
    Dernier message: 28/11/2009, 10h58
  3. Lecture d'un fichier Txt dans une JSP !
    Par bim92i dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 29/04/2008, 09h55
  4. [fichier] ecriture dans CFile
    Par ZaaN dans le forum MFC
    Réponses: 1
    Dernier message: 12/04/2007, 16h08
  5. Lecture d'un fichier texte dans un projet TOMCAT
    Par brice_nice dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 03/07/2005, 15h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo