STDIO

Section : Manuel du programmeur Linux (3)
Mise à jour de la version anglaise : 26 décembre 2001
Index Menu principal  

NOM

stdio - Bibliothèque standard de fonctions d'entrées-sorties  

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 tampons. Les entrées et les sorties sont projetées dans des flux de données logiques, et les caractéristiques des entrées-sorties 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 positionnement (par exemple un fichier sur disque, contrairement à 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 tampons pas encore écrits est transféré dans l'environnement 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 programme 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 tampons de sortie sont transférés par fflush) avant la fin du programme. Les autres méthodes d'abandon du programme, telles que abort(3) ne s'occupent pas de fermer proprement les fichiers.

Au démarrage du programme, trois flux de texte sont prédéfinis et n'ont pas besoin d'être ouverts explicitement : 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 diagnostique). Ces flux sont nommés stdin,stdout et stderr. À l'ouverture, le flux d'erreur n'a pas de tampon, l'entrée standard et la sortie standard ont des tampons 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 périphérique terminal disposent toujours d'un tampon de ligne par défaut. Les caractères sont conservés dans le tampon 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écessaire de déclencher intentionnellement l'écriture effective sur le terminal en invoquant fflush(3).

La bibliothèque standard stdio fait partie de la bibliothèque libc et ses routines sont chargées automatiquement 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'entê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, SEEK_CUR, TMP_MAX, clearerr, feof, ferror, fileno(), 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 définition de la macro est explicitement supprimée.  

Liste des fonctions

FonctionDescription
clearerrvérifie et réinitialise l'état d'un flux
fcloseferme un flux
fdopenfonction d'ouverture d'un flux
feofvérifie et réinitialise l'état d'un flux
ferrorvérifie et réinitialise l'état d'un flux
fflushtransfère les tampons d'un flux
fgetclit le caractère ou le mot suivant depuis un flux d'entrée
fgetposrepositionner un flux
fgetslit une ligne depuis un flux d'entrée
filenorenvoie le descripteur (de type entier) de l'argument flux
fopenfonction d'ouverture d'un flux
fprintfécriture de données formatées
fpurgetransfère les tampons d'un flux
fputcécriture d'un caractère ou d'un mot dans un flux
fputsécriture d'une ligne dans un flux
freadentrées-sorties binaires
freopenfonction d'ouverture d'un flux
fscanflecture de données formatées
fseekrepositionner un flux
fsetposrepositionner un flux
ftellrepositionner un flux
fwriteentrées-sorties binaires
getclit le caractère ou le mot suivant depuis un flux d'entrée
getcharlit le caractère ou le mot suivant depuis un flux d'entrée
getslit une ligne depuis un flux d'entrée
getwlit le caractère ou le mot suivant depuis un flux d'entrée
mktempcréer un fichier temporaire (unique)
perrormessages 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
removesupprimer une entrée de répertoire
rewindrepositionner un flux
scanflecture de données formatées
setbufopérations sur les tampons
setbufferopérations sur les tampons
setlinebufopérations sur les tampons
setvbufopérations sur les tampons
sprintfécriture de données formatées
sscanflecture de données formatées
strerrormessages d'erreur système
sys_errlistmessages d'erreur système
sys_nerrmessages d'erreur système
tempnamcréer un fichier temporaire
tmpfilecréer un fichier temporaire
tmpnamcréer un fichier temporaire
ungetcremettre un caractère dans un flux d'entrée
vfprintfécriture de données formatées
vfscanflecture de données formatées
vprintfécriture de données formatées
vscanflecture de données formatées
vsprintfécriture de données formatées
vsscanflecture de données formatées
 

CONFORMITÉ

La bibliothèque stdio est conforme à C89.  

VOIR AUSSI

close(2), open(2), read(2), write(2), stdout(3), unlocked_stdio(3)  

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 7 novembre 1996 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 stdio » N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel

 

Index

NOM
SYNOPSIS
DESCRIPTION
Liste des fonctions
CONFORMITÉ
VOIR AUSSI
TRADUCTION

Dernière mise à jour : 17 juillet 2008