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 :

Pas d'erreur sur la fonction fgets lorsqu'on dépasse le int maxLength


Sujet :

C

  1. #21
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 451
    Points : 43 096
    Points
    43 096
    Par défaut
    J'ai trouvé ceci :
    https://man7.org/linux/man-pages/man3/fseek.3.html

    Dans la section errors :

    ESPIPE The file descriptor underlying stream is not seekable
    (e.g., it refers to a pipe, FIFO, or socket).
    CONFORMING TO

    POSIX.1-2001, POSIX.1-2008, C89, C99.
    Par contre la page man fseek ne parle pas de l'erreur ESPIPE, depuis Ubuntu LTS 18.04.

    Après il faudrait consulter au moins POSIX-1-2008, je ne sais même pas comment le faire, j'ai pas l'impression que ce soit dispo gratuitement.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #22
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Pour le coup de fgets(), en gros il y a deux approches possibles, selon ce qu'on veut faire du résultat de la saisie, et les deux marchent aussi bien sur la console que sur un clavier.
    • L'approche qu'on suggère le plus souvent ici, supprimer le \n s'il est là et lire le buffer jusqu'à la fin de la ligne sinon, sert pour le cas courant où si une ligne est trop longue, on ne s'intéresse pas à l'excédent; on demande N caractères, et s'il y en a plus que N, ceux en trop passent à la trappe.
    • L'autre approche c'est de "saisir complètement la ligne quelle que soit sa longueur": Cela nécessite l'allocation dynamique. Généralement, ça implique des allocations et appels à fgets() en boucle jusqu'à ce qu'un appel ait retourné le \n (ou échoué). La fonction getline(), spécifiée dans le standard POSIX.1-2008, fait cela pour toi si tu travailles sur une platforme qui implémente ledit standard (genre, un Linux décemment récent)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Problème de message d'erreur sur une fonction SNMP
    Par kriptoo dans le forum Langage
    Réponses: 1
    Dernier message: 18/05/2007, 01h08
  2. Erreur sur la fonction getdate()
    Par obydissonn dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 25/04/2007, 11h48
  3. [MySQL] Erreur sur la fonction mysql_result()
    Par nico26 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 31/01/2007, 15h50
  4. erreur sur une fonction
    Par rimbaut dans le forum C
    Réponses: 3
    Dernier message: 01/04/2006, 17h28
  5. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00

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