À retenir
- C'est un simple nombre entier positif utilisé par le système.
- Il sert de lien entre un logiciel et une ressource (fichier, réseau, clavier).
- Il n'est valable que pendant la durée de vie du programme qui l'a ouvert.
Un descripteur de fichier est un petit numéro unique (un entier positif) que le système d'exploitation attribue à un fichier ou à une ressource au moment où un programme l'ouvre. C'est comme un ticket de vestiaire : au lieu de manipuler tout le fichier, le programme présente simplement ce numéro pour lire, écrire ou modifier le document.
Étymologie
Traduction directe de l'anglais file descriptor (souvent abrégé en FD). Le terme 'descripteur' désigne ici un identifiant qui pointe vers une structure de données interne gérée par le noyau du système d'exploitation. Ce concept est un pilier des systèmes Unix depuis les années 1970.
Exemples d'usage
- Le descripteur 0 (entrée standard) qui permet au programme de lire ce que vous tapez au clavier.
- Le descripteur 1 (sortie standard) qui permet d'afficher du texte à l'écran.
- Le descripteur 2 (erreur standard) dédié à l'affichage des messages d'alerte.
- Un numéro comme 12 attribué lors de l'ouverture d'une image ou d'un document Word.
Cas d'usage
Ce concept intervient dès qu'un programme doit interagir avec l'extérieur : lecture d'un fichier sur le disque dur, envoi de données sur Internet (via une socket), ou communication entre deux logiciels. Dans les systèmes de type Linux, presque tout est traité comme un fichier, ce qui rend l'usage des descripteurs universel.
Bonnes pratiques
La règle d'or est de toujours fermer un descripteur de fichier une fois le travail fini. Si un programme 'oublie' de les fermer, il finit par épuiser la réserve de numéros disponibles, ce qui provoque un plantage ou une erreur du type Too many open files.
Synonymes
Conseil
Pour bien comprendre, gardez en tête l'analogie du ticket : vous ne transportez pas votre manteau partout dans le restaurant, vous utilisez votre ticket (le descripteur) pour que le personnel (le système) sache sur quel manteau (le fichier) agir.
Questions fréquentes
Quelle est la différence avec un chemin de fichier ?
Le chemin est l'adresse du fichier sur le disque (ex: /documents/note.txt), tandis que le descripteur est le numéro temporaire utilisé par le programme une fois le fichier ouvert.
Un même fichier peut-il avoir plusieurs descripteurs ?
Oui, si deux programmes ouvrent le même fichier en même temps, chacun aura son propre numéro de descripteur pour le manipuler.