Leçon 16 : Descripteurs de fichiers — open, read, write
Chaque fichier, pipe, socket et périphérique auquel un programme accède sous Linux est représenté par un descripteur de fichiers — un petit entier pointant vers une entrée dans la table de fichiers du processus. Les appels open, read, write, close et lseek sont les primitives d'E/S POSIX les plus fo
Un descripteur de fichiers, c'est comme un numéro de table au restaurant : tu n'as pas besoin de te rappeler l'adresse de la cuisine — donne juste le numéro et l'OS sait exactement de quel fichier tu parles.
- descripteur de fichiers
- Un petit entier non négatif qui identifie un fichier ouvert au sein d'un processus. stdin=0, stdout=1, stderr=2. open() retourne le FD disponible le plus bas.
- open
- Appel système qui ouvre un fichier et retourne un descripteur de fichiers. Prend un chemin, des flags (O_RDONLY, O_WRONLY, O_CREAT, O_TRUNC) et un mode pour la création de nouveaux fichiers.
- read
- Appel système qui lit jusqu'à n octets depuis un descripteur de fichiers vers un buffer. Retourne le nombre d'octets réellement lus, 0 à EOF, et -1 en cas d'erreur.
- write
- Appel système qui écrit n octets depuis un buffer vers un descripteur de fichiers. Retourne le nombre d'octets réellement écrits — peut écrire moins que demandé.
- lseek
- Appel système qui repositionne l'offset de fichier d'un descripteur. Permet la lecture/écriture en accès aléatoire dans un fichier. SEEK_SET, SEEK_CUR, SEEK_END sont des valeurs whence.