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 :

Erreur espipe explication


Sujet :

C

  1. #1
    Membre averti
    Femme Profil pro
    �tudiant
    Inscrit en
    F�vrier 2020
    Messages
    39
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2020
    Messages : 39
    Par d�faut Erreur espipe explication
    Bonjour � tous,

    J'essaie de faire un lseek sur un tube.

    Je comprends que cela ne fonctionne pas car le pipe fonction en flux de donn�es donc impossible de positionner le "curseur". En lecture je le comprends mais en �criture est-ce possible ?

    J'aimerai avoir des �l�ments th�oriques pour le comprendre.

    J'ai fait ce petit programme pour ma d�monstration :

    Code c : 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
    #include "sys.h"
     
    int main(void) {
      // cette variable contiendra les descripteurs de lecture [0] et écriture [1] du tube
      int tube[2];
     
      // création du tube
      assert(pipe(tube) == 0);
     
      int ret_lseek = 0;
     
      // Tentative d'utiliser lseek sur le descripteur de lecture
      ret_lseek = lseek(tube[0], 1, SEEK_CUR);
      printf("La fonction lseek sur le descripteur de lecture retourne : %d\n", ret_lseek);
      perror("lseek()");
      if(errno == ESPIPE)
        puts("Erreur ESPIPE : fd est associé à un tube (pipe), une socket, ou une file FIFO.");
     
      puts("");
     
      // Tentative d'utiliser lseek sur le descripteur d'écriture
      ret_lseek = lseek(tube[1], 1, SEEK_CUR);
      printf("La fonction lseek sur le descripteur d'écriture retourne : %d\n", ret_lseek);
      perror("lseek()");
      if(errno == ESPIPE)
        puts("Erreur ESPIPE : fd est associé à un tube (pipe), une socket, ou une file FIFO.");
     
      return 0;
    }

    En l'ex�cutant j'ai bien un espipe sur lecture et �criture.

    Comment faire pour �viter l'erreur ? Je dois faire un unlink ?

    Merci pour votre aide !

  2. #2
    Expert confirm� Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par d�faut
    Bonjour

    La conduite est un vide-ordure. Quand c'est lanc�, c'est fini, il n'y � rien � parcourir. En r�ception, tant qu'on n'a pas re�u, il n'y a rien � parcourir non plus.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. explication d'une ligne d'erreur DEV
    Par katia_heraklion dans le forum C
    R�ponses: 2
    Dernier message: 26/03/2007, 19h26
  2. [MySQL] Erreur sans explication
    Par jeremy_chauvel dans le forum PHP & Base de donn�es
    R�ponses: 22
    Dernier message: 10/01/2007, 17h27
  3. explication erreur "winmain@16"
    Par patchouli dans le forum C
    R�ponses: 4
    Dernier message: 07/01/2007, 23h40
  4. Explication sur message d'erreur
    Par cjacquel dans le forum VC++ .NET
    R�ponses: 2
    Dernier message: 13/12/2006, 13h47
  5. R�ponses: 5
    Dernier message: 22/11/2005, 14h16

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