stdio - Bibliothèque standard de fonctions d'entrées-sorties
Bibliothèque C standard (
libc,
-lc)
#include <stdio.h>
FILE *stdin;
FILE *stdout;
FILE *stderr;
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 (cela 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 gère 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é soit au début ou à 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. Cela 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 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(3)) 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 de
l'entrée conventionnelle),
la sortie standard (pour
l'écriture de la sortie conventionnelle) et
le flux d'erreur
standard (pour l'écriture de la sortie de diagnostiques). Ces flux
sont abrégés
stdin,
stdout et
stderr.
À l'ouverture, le flux d'erreur n'a pas de tampon complet,
l'entrée 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
cc(1). 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 du
compilateur et quelles sont 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.
La bibliothèque
stdio est conforme à C99.
close(2),
open(2),
read(2),
write(2),
stdout(3),
unlocked_stdio(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Grégoire
Scano <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]