À retenir
- C'est une poignée abstraite pour manipuler une ressource réelle.
- Il évite au programmeur de gérer les détails techniques complexes de la ressource.
- Le nombre de descripteurs disponibles simultanément est souvent limité par le système.
En programmation, un descripteur est un identifiant unique ou un petit objet qui sert d'intermédiaire pour manipuler une ressource (comme un fichier, une connexion réseau ou une zone mémoire). Imaginez-le comme un ticket de vestiaire : vous ne transportez pas votre manteau tout au long de la soirée, vous utilisez le ticket pour que le système sache exactement de quel objet vous parlez et puisse agir dessus.
Étymologie
Vient du latin describere (« transcrire », « représenter »). En informatique, le terme a évolué pour désigner un élément qui pointe vers une structure de données plus complexe, permettant au système d'exploitation ou au langage de garder une trace des ressources ouvertes.
Exemples d'usage
- Descripteur de fichier (Unix/Linux) : Un simple nombre entier (0, 1, 2...) qui permet à un programme de lire ou d'écrire dans un fichier ou sur l'écran.
- Descripteur Python : Un mécanisme qui permet de contrôler ce qui se passe quand on lit, écrit ou supprime l'attribut d'un objet (utilisé pour créer des propriétés).
- Descripteur de sécurité : Une structure de données qui définit qui a le droit d'accéder à un dossier ou un service.
Cas d'usage
Ce concept intervient dès qu'un programme doit interagir avec le monde extérieur : ouvrir un document, envoyer un e-mail via une socket, ou gérer finement la mémoire vive. Il permet d'abstraire la complexité de la ressource réelle derrière un simple numéro ou une interface standardisée.
Bonnes pratiques
La règle d'or est de toujours libérer ou fermer un descripteur une fois son travail terminé. Si un programme demande des descripteurs de fichiers sans jamais les rendre, le système finit par saturer, empêchant l'ouverture de tout nouveau document ou application (c'est ce qu'on appelle une fuite de ressources).
Synonymes
Antonymes
Conseil
Si vous apprenez le développement système (C, Rust) ou l'administration Linux, considérez les descripteurs comme des 'clés' temporaires. Ne perdez jamais la clé et n'oubliez pas de la rendre au propriétaire (le système) après usage !
Questions fréquentes
Quelle est la différence entre un descripteur et un pointeur ?
Un pointeur contient l'adresse mémoire directe d'une donnée, tandis qu'un descripteur est un indice abstrait géré par le système pour accéder à une ressource plus large (fichier, matériel).
Pourquoi parle-t-on de 'handle' en Windows ?
Le terme 'handle' (poignée) est l'équivalent quasi exact de 'descripteur' dans l'univers Windows : c'est l'objet que l'on saisit pour manipuler une fenêtre ou un fichier.