Skip to main content

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.