| fopen | |||
Nomfopen, fdopen, freopen - Fonctions d'ouverture de flux.Synopsis#include <stdio.h>
FILE *fopen (const char *path,
const char *mode); DescriptionLa 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) :
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é. 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 intercalées sur les flux en lecture/écriture, dans un ordre quelconque, et sans besoin de seek(3) , contrairement aux anciennes versions 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 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éeS'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
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 Aussiopen(2) , fclose(3) , fileno(3) .TraductionChristophe Blaess, 1997.
|