Image ventilateur qui tourne fond du ventilateur Circuit imprimé (image de titrage diode verte diode rouge
Administration

EOF

Abréviation anglaise pour end of file

EOF est à la fois un caractère ASCII (décimal 26, hexadécimal 1A) et une condition dans un système d'exploitation, indiquant qu'aucune donnée supplémentaire ne peut être lue depuis une source de données comme un fichier ou un flux. Dans ce cas, elle a généralement pour valeur -1 et n'a rien à voir avec un caractère ASCII.

L'utilisation de EOF vient de l'ancien système d'exploitation CP/M qui ne connaissait pas le nombre exact d'octets contenus dans un fichier mais seulement combien de secteurs de disque étaient nécessaires pour le stocker. Le caractère EOF (à l'origine Control-Z) a donc été utilisé pour marquer la fin des fichiers. Pour des raisons de compatibilité, Control-Z est considéré comme marquant la fin d'un fichier par la Microsoft C Runtime Library si un fichier est ouvert en mode texte.

Linux et les autres systèmes d'exploitation de type UNIX n'ont jamais utilisé EOF et les systèmes d'exploitation contemporains n'ont pas besoin de caractère de fin de fichier.

Notons qu'en C et C++ il existe une valeur de nom EOF (elle est définie dans stdio.h par : #define EOF (-1)). Cet EOF n'a rien à voir avec Control-Z ni avec un caractère ASCII puisqu'il s'agit d'un entier ! La fonction getchar() qui lit les caractères un à un retourne la valeur spéciale EOF quand la fin d'un fichier est atteinte. La fin du fichier peut être marquée par un Control-Z mais c'est bien la valeur -1 qui est renvoyée.

Pour en savoir plus

Tout sur EOF