Seth Woolley's Man Viewer

fopen(3) - fdopen, fopen, freopen, fdopen, fopen, freopen - Fonctions d'ouverture de flux - man 3 fopen

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

FOPEN(3)                  Manuel du programmeur Linux                 FOPEN(3)



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 pointe par path et lui associe un flux.

       L'argument mode pointe vers  une  chane  commenant  par  l'une  des
       squences suivantes (d'autres caractres peuvent suivre la squence)
       :

       r      Ouvre le fichier en lecture. Le pointeur de flux est  plac  au
              dbut du fichier.

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

       w      Ouvre le fichier  en  criture.  Le  fichier  est  cr  s'il
              n'existait  pas.  S'il existait dj , sa longueur est ramene
                0.  Le pointeur de flux est plac au dbut 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
              ramene   0.  Le pointeur de flux  est  plac  au  dbut  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  poin-
              teur de flux est plac   la fin du fichier.

       La  chane  mode  peut  galement inclure la lettre ``b'' comme 3me
       caractere, ou mme entre les deux caractres d'une des squences  
       2  lettres  vues ci-dessus.  Ce mode sert uniquement   assurer la com-
       patibilit avec ANSI X3.159-1989 (``ANSI C'') et n'a aucun  effet.  Le
       ``b''  est  ignor sur tous les systmes compatibles POSIX, y compris
       Linux. (D'autres systmes peuvent traiter les fichiers de texte et les
       fichiers  binaires  diffrement,  et  l'ajout  du ``b'' peut tre une
       bonne ide si vous faites des entres-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 mlanges sur les flux
       en lecture et criture, dans un ordre quelconque, et  sans  besoin  de
       positionnement  entre les entres et les sorties,   moins qu'une lec-
       ture atteigne la fin du fichier.  (Sinon sur certains systmes la lec-
       ture  peut renvoyer les donnes provenant d'une criture autre que la
       dernire).  Une bonne habitude consiste donc   intercaler un fseek ou
       fgetpos  entre  les  lectures  et les critures sur le mme flux. Ces
       oprations 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 caractre dans le mode)
       feront agir toutes les oprations d'criture   la fin du flux, comme
       si elles taient prcdes par un appel
              fseek(stream,0,SEEK_END);
       systmatique.

       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'indica-
       teur de position du nouveau flux prend la mme  valeur  que  celui  de
       fildes, et les indicateurs d'erreur et de fin-de-fichier sont effacs.
       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  mmoire
       partage est indfini.

       La  fonction  freopen  ouvre  le  fichier dont le nom se trouve dans la
       chane de caractres pointe 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 RENVOYE
       S'il russissent intgralement 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,3,n)(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,3,n)(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,3,n)(2), fclose(3), fileno(3).

TRADUCTION
       Christophe Blaess, 1996-2003.



LDP                             21 juillet 2003                       FOPEN(3)

References for this manual (incoming links)