STDIO(3) Manuel du programmeur Linux STDIO(3)
NOM
stdio - Bibliothèque standard de fonctions d'entrées/sor
ties.
SYNOPSIS
#include <stdio.h>
FILE *stdin;
FILE *stdout;
FILE *stderr;
DESCRIPTION
Cette bibliothéque standard fournit une interface simple
et efficace pour les entrées/sorties avec buffers. Les
entrées et les sorties sont projetées dans des flux de
données logiques, et les caractéristiques des entrées/sor
ties physiques sont masquées. Les fonctions et les macros
sont présentées rapidement ci-dessous. Des informations
supplémentaires sont disponibles dans leurs pages de
manuel individuelles.
Un flux est associé avec un fichier externe (qui peut
aussi être un dispositif physique) en ouvrant un fichier
(ceci peut impliquer la création d'un nouveau fichier). La
création d'un fichier déjà existant efface son contenu
précédent. Si un fichier supporte les demandes de posi
tionnement (par exemple un fichier sur disque, contraire
ment à un terminal), alors l'indicateur de position du
fichier associé au flux est placé au début du fichier
(octet zéro), à moins que le fichier soit ouvert en mode
d'ajout. Si le mode d'ajout est utilisé, l'indicateur de
position est placé à la fin du fichier. L'indicateur de
position est mis à jour après chaque lecture, écriture, ou
repositionnement. Toutes les entrées se déroulent comme si
les caractères étaient lus par des appels successifs à la
fonction fgetc(3). Toutes les sorties ont lieu comme si
les caractères étaient envoyés à des appels successifs à
la fonction fputc(3).
Un fichier est dissocié d'un flux en fermant le fichier.
Les flux de sortie sont vidés (flush) avant que le flux
soit dissocié du fichier. Ceci signifie que le contenu des
buffers pas encore écrits est transféré dans l'environ
nement de l'hôte. La valeur d'un pointeur sur un objet
FILE (fichier) est indéfinie après la fermeture d'un
fichier.
Un fichier peut être réouvert plus tard par le même pro
gramme ou par un autre, et son contenu relu ou modifié (si
l'on peut placer l'indicateur de positionnement au début).
Si la fonction main se termine, ou si la fonction exit(3)
est invoquée, tous les fichiers sont fermés (tous les
buffers de sortie sont transférés par fflush) avant la fin
du programe. Les autres méthodes d'abandon du programme,
BSD 28 Avril 1998 1
STDIO(3) Manuel du programmeur Linux STDIO(3)
telles que abort(3) ou _exit(2) ne s'occupent pas de fer
mer proprement les fichiers.
Au démarrage du programme, trois flux de texte sont
prédéfinis et n'ont pas besoin d'être ouverts explicite
ment :
l'entrée standard (pour la lecture des données),
la sortie standard (pour l'écriture des données), et
le flux d'erreur standard (pour les messages de diagnos
tique).
Ces flux sont nommés stdin,stdout et stderr. A l'ouver
ture, le flux d'erreur n'a pas de buffer, l'entrée stan
dard et la sortie standard ont des buffers complets si et
seulement si ils ne se réfèrent pas à un périphérique
interactif.
Les flux de sortie qui s'adressent à un peripherique ter
minal disposent toujours d'un buffer de ligne par défaut.
Les caractères sont conservés dans le buffer jusqu'à un
saut de ligne, ou jusqu'à ce qu'une lecture soit demandée
sur un flux associé au même terminal. Il peut être néces
saire de déclencher intentionnellement l'écriture effec
tive sur le terminal en invoquant fflush(3).
La bibliothèque standard stdio fait partie de la bib
liothèque libc et ses routines sont chargées automatique
ment par les compilateurs cc(1) et pc(1) si besoin est.
Les sections SYNOPSIS des pages de manuel mentionnées plus
bas indiquent les fichiers d'en-tête nécessaires, l'allure
des déclarations de fonctions, et les variables externes
utiles.
Les noms ci-dessous correspondent à des macros. On ne peut
pas les réutiliser sans supprimer leur définition
précédente avec #undef: BUFSIZ, EOF, FILENAME_MAX,
FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam, NULL, SEEK_END,
SEEK_SET, SEE_CUR, TMP_MAX, clearerr, feof, ferror,
fileno, fropen, fwopen, getc, getchar, putc, putchar,
stderr, stdin, stdout. Il existe des définitions sous
forme de fonctions des macros feof, ferror, clearerr,
fileno, getc, getchar, putc, et putchar qui seront
utilisées si la definition de la macro est explicitement
supprimée.
VOIR AUSSI
open(2), close(2), read(2), write(2), stdout(3)
BUGS
Les fonctions standards avec buffer n'interragissent pas
très bien avec certaines autres bibliothèques et fonctions
BSD 28 Avril 1998 2
STDIO(3) Manuel du programmeur Linux STDIO(3)
système, particulierement vfork et abort. Ce n'est
peut-être pas le cas sous Linux.
STANDARDS
La bibliothèque stdio est conforme à ANSI C3.159-1989
(``ANSI C'').
LISTE DES FONCTIONS
Fonction
Description
clearerr
vérifie et réinitialise le statut d'un flux.
fclose ferme un flux.
fdopen fonction d'ouverture d'un flux.
feof vérifie et réinitialise le statut d'un flux.
ferror vérifie et réinitialise le statut d'un flux.
fflush transfère les buffers d'un flux.
fgetc lit le caractère ou le mot suivant depuis un flux
d'entrée.
fgetline
lit une ligne depuis un flux d'entrée.
fgetpos
lit la position courante d'un flux.
fgets lit une ligne depuis un flux d'entrée.
fileno vérifie et réinitialise le statut d'un flux.
fopen fonction d'ouverture d'un flux.
fprintf
écriture de données formatées.
fpurge transfère les buffers d'un flux.
fputc écriture d'un caractère ou d'un mot dans un flux.
fputs écriture d'une ligne dans un flux.
fread entrées/sorties binaires.
freopen
fonction d'ouverture d'un flux.
fropen fonction d'ouverture d'un flux.
BSD 28 Avril 1998 3
STDIO(3) Manuel du programmeur Linux STDIO(3)
fscanf lecture de données formatées.
fseek repositionner un flux.
fsetpos
repositionner un flux.
ftell repositionner un flux.
fwrite entrées/sorties binaires.
getc lit le caractère ou le mot suivant depuis un flux
d'entrée.
getchar
lit le caractère ou le mot suivant depuis un flux
d'entrée.
gets lit une ligne depuis un flux d'entrée.
getw lit le caractère ou le mot suivant depuis un flux
d'entrée.
mktemp créer un fichier temporaire.
perror messages d'erreur système.
printf écriture de données formatées.
putc écriture d'un caractère ou d'un mot dans un flux.
putchar
écriture d'un caractère ou d'un mot dans un flux.
puts écriture d'une ligne dans un flux.
putw écriture d'un caractère ou d'un mot dans un flux.
remove supprimer une entrée de répertoire.
rewind repositionner un flux.
scanf lecture de données formatées.
setbuf opérations sur les buffers.
setbuffer
opérations sur les buffers.
setlinebuf
opérations sur les buffers.
setvbuf
opérations sur les buffers.
BSD 28 Avril 1998 4
STDIO(3) Manuel du programmeur Linux STDIO(3)
sprintf
écriture de données formatées.
sscanf lecture de données formatées.
strerror
messages d'erreur système.
sys_errlist
messages d'erreur système.
sys_nerr
messages d'erreur système.
tempnam
créer un fichier temporaire.
tmpfile
créer un fichier temporaire.
tmpnam créer un fichier temporaire.
ungetc remettre un caractère dans un flux d'entrée.
vfprintf
écriture de données formatées.
vfscanf
lecture de données formatées.
vprintf
écriture de données formatées.
vscanf lecture de données formatées.
vsprintf
écriture de données formatées.
vsscanf
lecture de données formatées.
TRADUCTION
Christophe Blaess, 1997.
BSD 28 Avril 1998 5