Provided by: manpages-fr_1.67.0-1_all bug

NOM

       fopen, fdopen, freopen - Fonctions d’ouverture de flux.

SYNOPSIS

       #include <stdio.h>

       FILE *fopen (const char *path, const char *mode);
       FILE *fdopen (int fildes, const char *mode);
       FILE *freopen (const char *path, const char *mode, FILE *stream);

DESCRIPTION

       La  fonction  fopen  ouvre  le  fichier dont le nom est contenu dans la
       chaine pointée par path et lui associe un flux.

       L’argument mode  pointe  vers  une  chaîne  commençant  par  l’une  des
       séquences suivantes (d’autres caractères peuvent suivre la séquence) :

       r      Ouvre  le  fichier  en lecture. Le pointeur de flux est placé au
              début du fichier.

       r+     Ouvre le fichier en lecture et écriture. Le pointeur de flux est
              placé au début du fichier.

       w      Ouvre   le  fichier  en  écriture.  Le  fichier  est  créé  s’il
              n’existait pas.  S’il existait déjà, sa longueur est  ramenée  à
              0.  Le pointeur de flux est placé au début du fichier.

       w+     Ouvre  le  fichier  en  lecture et écriture. Le fichier est créé
              s’il n’existait  pas.   S’il  existait  deja,  sa  longueur  est
              ramenée à 0.  Le pointeur de flux est placé au début du fichier.

       a      Ouvre le fichier en ajout (écriture à la  fin  du  fichier).  Le
              fichier  est  créé  s’il n’existait pas. Le pointeur de flux est
              placé à la fin du fichier.

       a+     Ouvre le fichier  en  lecture  et  ajout  (écriture  en  fin  de
              fichier).   Le fichier est créé s’il n’existait pas. Le pointeur
              de flux est placé à la fin du fichier.

       La chaîne mode peut  également  inclure  la  lettre  ‘‘b’’  comme  3ème
       caractere,  ou  même  entre les deux caractères d’une des séquences à 2
       lettres  vues  ci-dessus.   Ce  mode  sert  uniquement  à  assurer   la
       compatibilité avec ANSI X3.159-1989 (‘‘ANSI C’’) et n’a aucun effet. Le
       ‘‘b’’ est ignoré sur tous les systèmes  compatibles  POSIX,  y  compris
       Linux.  (D’autres systèmes peuvent traiter les fichiers de texte et les
       fichiers binaires différement, et l’ajout du ‘‘b’’ peut être une  bonne
       idée si vous faites des entrées-sorties binaires et que votre programme
       risque d’être porté sur un environnement non-Unix).

       Tout fichier créé aura le mode S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP  |
       S_IROTH  |  S_IWOTH  (0666),  qui  sera  ensuite  modifié par la valeur
       d’umask du processus. Voir umask(2).

       Les lectures et les écritures peuvent être mélangées sur  les  flux  en
       lecture  et  écriture,  dans  un  ordre  quelconque,  et sans besoin de
       positionnement entre les entrées et les sorties, à moins qu’une lecture
       atteigne  la  fin  du fichier.  (Sinon sur certains systèmes la lecture
       peut renvoyer  les  données  provenant  d’une  écriture  autre  que  la
       dernière).   Une  bonne habitude consiste donc à intercaler un fseek ou
       fgetpos entre les lectures et les  écritures  sur  le  même  flux.  Ces
       opérations  peuvent  être  visiblement  sans effet comme fseek(..., 0L,
       SEEK_CUR) et ne servant que pour l’effet de bord de synchronisation.

       Ouvrir un fichier en mode ajout (a en premier caractère dans  le  mode)
       feront agir toutes les opérations d’écriture à la fin du flux, comme si
       elles étaient précédées par un appel
              fseek(stream,0,SEEK_END);
       systèmatique.

       La fonction fdopen associe un  flux  avec  un  descripteur  de  fichier
       fildes  existant.  Le mode du flux ("r", "r+", "w", "w+", "a", ou "a+")
       doit être compatible avec celui du descripteur de fichier. L’indicateur
       de  position  du nouveau flux prend la même valeur que celui de fildes,
       et les indicateurs d’erreur et de  fin-de-fichier  sont  effacés.   Les
       modes  "w"  et  "w+" ne tronquent pas le fichier.  Le descripteur n’est
       pas dupliqué par dup(2), et sera  refermé  lorsque  le  flux  créé  par
       fdopen  sera  refermé.   L’appel  de  fdopen  sur  un  objet en mémoire
       partagée est indéfini.

       La fonction freopen ouvre le fichier dont le  nom  se  trouve  dans  la
       chaîne de caractères pointée par path et lui associe le flux pointé par
       stream.  Le flux original, s’il existe, est fermé. L’argument mode  est
       utilisé  exactement  comme  avec  fopen.   La principale utilisation de
       freopen est de modifier le fichier associé avec les flux  standards  de
       texte (stderr, stdin, ou stdout).

VALEUR RENVOYÉE

       S’il  réussissent  intégralement  fopen, fdopen et freopen renvoient un
       pointeur sur un fichier, de type FILE.  Sinon, ils  renvoient  NULL  et
       errno contient le code d’erreur.

ERREURS

       EINVAL Le mode fourni à fopen, fdopen, ou freopen était invalide.

       Les  fonctions  fopen,  fdopen  et freopen peuvent également échouer et
       positionner dans errno une des erreurs susceptibles de se produire avec
       malloc(3).

       La  fonction fopen peut aussi échouer et positionner dans errno une des
       erreurs susceptibles de se produire avec open(2).

       La fonction fdopen peut aussi échouer et positionner dans errno une des
       erreurs susceptibles de se produire avec fcntl(2).

       La  fonction  freopen  peut aussi échouer et positionner dans errno une
       des erreurs susceptibles de se  produire  avec  open(2),  fclose(3)  et
       fflush(3).

CONFORMITÉ

       Les  fonctions  fopen  et  freopen  sont  conformes  à ANSI X3.159-1989
       (‘‘ANSI C’’).  La fonction fdopen est conforme  à  IEEE  Std1003.1-1988
       (‘‘POSIX.1’’).

VOIR AUSSI

       open(2), fclose(3), fileno(3).

TRADUCTION

       Christophe Blaess, 1996-2003.