Sommaire

Écriture d’un fichier Fichier:écriture

L’appel système write() permet d’écrire dans un fichier ouvert, à partir de la position courante.

Syntaxe

#include <unistd.h> 
ssize_t write(int fd, const void *buffer, size_t count);

Arguments

fd

Descripteur du fichier

buffer

Adresse de la zone de stockage des octets à écrire

count

Nombre maximum d’octets à écrire

Valeur retournée

-1

Erreur, code erreur positionné dans la variable errno

>=0

Nombre d’octets effectivement écrits

Description

L’appel retourne le nombre d’octets effectivement pris en compte pour l’écriture. Ce nombre n’est pas forcément égal au nombre demandé, pour différentes raisons, par exemple :

  • Le système de fichiers peut être saturé.

  • Le quota d’espace disque attribué à l’utilisateur associé au processus a pu être atteint.

  • La taille maximale d’un fichier a pu être atteinte.

Le noyau positionne automatiquement l’emplacement courant du descripteur utilisé après le dernier octet de l’écriture qui vient d’être effectuée.

Attention, le retour avec succès de l’appel n’implique pas que les données sont effectivement écrites physiquement sur le disque. En effet, par défaut, pour certains types de fichiers (notamment les fichiers ordinaires), le noyau utilise des mécanismes ...