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 :

Mode d'ouverture 'rt' pour un fichier ?


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Mode d'ouverture 'rt' pour un fichier ?
    Bonjour à tous, je viens vous voir car j'ai une petite question, je me trouve devant un code source en c qui ouvre un fichier avec le mode "rt":

    FILE *fichier = fopen("/var/...", "rt");

    J'ai pour hypothèse que le t signifie l'ouverture du fichier (en lecture) avec le droit "sticky bit". Néanmoins, je trouverai plus approprié d'utilisé les droits d'endossement pour ouvrir un fichier dont nous n'avons pas ce droit.
    Votre avis?

    Bonne soirée

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Bonsoir,

    Je pense que c'est "r" qui signifie l'ouverture en lecture seule et la norme autorise à faire suivre d'autres caractères comme t pour les flux textes ou b pour les flux binaires.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 371
    Points : 23 626
    Points
    23 626
    Par défaut
    En effet, "rb" signifie bien ouverture en lecture seule et en mode binaire (sinon, c'est en texte par défaut) et "rt" n'existe pas dans C99. La norme précise que si le mode sépcifie une autre chaîne que celles prévues ("r","w","a", "rb","wb","ab", "r+", "w+", "a+"), le comportement est indéfini, mais avec une note de bas de page qui précise que si cette chaîne commence quand même par un de ces modes, l'implémentation peut choisir d'ignorer le reste, ou bien de les utiliser pour sélectionner différents types de fichiers, qui seraient alors hors standard.

    Je penche pour une coquille du développeur ou pour l'hypothèse de nanosoft (fichier texte explicite).

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci pour vos réponse

  5. #5
    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
    Sous certains environnement de développements pour DOS, il y avait* une option pour faire en sorte que fopen() ouvre par défaut les fichiers en mode binaire ("r" devenait alors équivalent de "rb"), et qu'il faille préciser explicitement qu'on ouvrait en mode texte (ils avaient ajouté l'option "rt" pour ça).

    Mais ça n'est jamais entré dans le standard. Le standard C ne connait que "r" = texte et "rb" = binaire, pas d'histoire de "par défaut" ou autre.

    Ceux qui tapent "rt" ont soit appris sur des plate-formes non-standard, soit été (mal) enseignés pas des profs ayant appris sur lesdites plate-formes.

    *De telles options existent toujours pour Windows.
    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.

Discussions similaires

  1. mode d'ouverture d'un fichier
    Par siempre dans le forum C
    Réponses: 4
    Dernier message: 25/08/2009, 16h19
  2. Réponses: 8
    Dernier message: 29/07/2009, 16h34
  3. Modes d'ouvertures des fichiers
    Par Invité dans le forum Bibliothèque standard
    Réponses: 6
    Dernier message: 02/08/2008, 11h17
  4. Réponses: 4
    Dernier message: 09/06/2006, 10h08
  5. mode d'ouverture fichier
    Par jmclej dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 12/12/2005, 21h58

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