End-of-file

Un article de Wikipédia, l'encyclopédie libre.

End-of-file (littéralement « fin de fichier » en anglais), couramment abrégé en EOF, est une condition dans un système d'exploitation informatique indiquant qu'aucune donnée supplémentaire ne peut être lue depuis une source de données. La source de données est d'habitude appelée un fichier, ou un flux.

Dans le langage de programmation C, ou plus exactement, dans sa bibliothèque standard, les fonctions d'accès fichier et autres flux d'entrées-sorties peuvent retourner une valeur égale à la valeur symbolique EOF afin d'indiquer que la condition end-of-file est survenue. La valeur réelle de EOF est un nombre négatif, dépendante du système d'exploitation, communément -1. La macro EOF prend sa valeur grâce au préprocesseur, avant de compiler le code source.

Sous tout environnement UNIX, une indication d'end-of-file peut être envoyée depuis un shell (console) en pressant les touches CTRL+D. Sous MS-DOS et Windows, elle correspond aux touches CTRL+Z.

Dans certains cas, lorsqu'on a affaire à des fichiers texte ou à une lecture depuis un périphérique caractère (un périphérique orienté flux comme une carte vidéo par exemple), le shell MS-DOS de Microsoft (COMMAND.COM) ou des programmes utilitaires du système d'exploitation ajouteront, historiquement, un caractère control-Z en code ASCII à la fin du fichier disque (bien que les appels d'écriture fichier du kernel basique MSDOS.SYS n'en ajoutent jamais). Cela a été fait afin de conserver la compatibilité ascendante avec certaines particularités du CP/M, puisque le système de fichiers du CP/M n'enregistrait la longueur des fichiers qu'en termes de « combien d'enregistrements de 128 octets étaient alloués ». Le système de fichiers MS-DOS, quant à lui, a toujours enregistré la taille exacte, en octets, des fichiers, et ce depuis sa toute première version.

Les caractères de contrôle ASCII sont non-imprimables dans des flux de caractères. Ils sont normalement représentés de manière plus lisible.

Voir aussi[modifier | modifier le code]

Notes et références[modifier | modifier le code]