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 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  poin­
              teur 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 écriture. 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  écriture.   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
       C3.159-1989  (``ANSI C'') et n'a aucun effet. Le ``b'' est
       ignoré.

       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).




BSD                       25 Avril 1998                         1





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


       Les lectures et les écritures peuvent être intercalées sur
       les flux en lecture/écriture, dans un ordre quelconque, et
       sans  besoin  de seek(3), contrairement aux anciennes ver­
       sions de stdio.  Ceci  n'est  pas  portable  sur  d'autres
       systèmes, mais fonctionne sous Linux. ANSI C réclame qu'un
       appel de fonction de positionnement intervienne entre  les
       entrées et les sorties, à moins qu'une lecture recontre la
       fin du fichier.

       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 nou­
       veau 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).

       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 asso­
       cie 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 suscep­
       tibles 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).



BSD                       25 Avril 1998                         2





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


VOIR AUSSI
       open(2), fclose(3).


CONFORMITÉ
       Les fonctions fopen  et  freopen  sont  conformes  à  ANSI
       C3.159-1989 (``ANSI C'').  La fonction fdopen est conforme
       à IEEE Std1003.1-1988 (``POSIX.1'').


TRADUCTION
       Christophe Blaess, 1997.













































BSD                       25 Avril 1998                         3