La bibliothèque standard
Les descripteurs de fichiers
Le fichier d'inclusion <stdio.h>
contient la définition du type FILE
. Ce
type est une structure contenant les informations nécessaires au système pour la
manipulation d'un fichier ouvert. Le contenu exact de cette structure peut
varier d'un système à l'autre. Toutes les fonctions d'entrées sorties utilisent
en premier argument un pointeur sur une telle structure FILE *
. Le rôle de cet
argument est d'indiquer le flux sur lequel on doit effectuer l'opération
d'écriture ou de lecture. Pour pouvoir utiliser une fonction d'entrée sortie il
faut donc avoir une valeur pour ce premier argument, c'est le rôle de la
fonction fopen
de nous fournir ce pointeur en ouvrant le fichier. Les deux
fonctions printf
et scanf
sont des synonymes de fprintf(stdout, format, ...)
et fscanf(stdin,format, ...)
. Où stdout
et stdin
sont des
expressions de type FILE *
définies sous forme de macro-définitions dans le
fichier <stdio.h>
. Avec POSIX ce sont effectivement des fonctions. sur les
systèmes de la famille UNIX les fichiers ouverts par un processus le restent
dans ses fils. Par exemple le shell a en général trois flux standards :
- stdin le terminal ouvert en lecture
- stdout le terminal ouvert en écriture
- stderr le terminal ouvert en écriture, et en mode non bufferisé
Ainsi si l'exécution d'un programme C est réalisée à partir du shell le programme C a déjà ces trois descripteurs de fichiers utilisables.