L' écriture est l'une des routines les plus basiques fournies par un noyaude système d'exploitationde type Unix . Il écrit des données à partir d'un tampon déclaré par l'utilisateur sur un périphérique donné, tel qu'un fichier. Il s’agit de la principale façon de sortir des données d’un programme en utilisant directement un appel système. La destination est identifiée par un code numérique . Les données à écrire, par exemple un morceau de texte, sont définies par un pointeur et une taille, donnée en nombre d'octets.
Le pointeur vers un tampon où les données sont stockées ( buf ).
Le nombre d'octets à écrire à partir du tampon ( nbytes ).
Utilisation de POSIX
L'interface d'appel d'écriture[1],[2] est normalisée par la spécification POSIX. Les données sont écrites dans un fichier en appelant la fonction write. Le prototype de la fonction est :
ssize_twrite(intfd,constvoid*buf,size_tnbyte);
Argument
Description
fd
Le descripteur de fichier obtenu à partir d'un appel à open() . C'est une valeur entière. Les valeurs 0, 1, 2 peuvent également être données, respectivement pour l'entrée standard, la sortie standard et l'erreur standard.
buf
Pointe vers un tableau de caractères, avec le contenu à écrire dans le fichier pointé par filedesc.
nbyte
Spécifie le nombre d'octets à écrire à partir du tableau de caractères, buf, dans le fichier pointé par files.
Dans la syntaxe ci-dessus, ssize_t est un typedef . Il s'agit d'un type de données signé défini dans stddef.h . Notez que write() ne renvoie pas de valeur non signée ; elle renvoie -1 en cas d'erreur, elle doit donc renvoyer une valeur signée. La fonction d'écriture renvoie le nombre d'octets écrits avec succès dans le fichier, qui peut parfois être inférieur aux nbytes spécifiés. Il renvoie -1 si une condition exceptionnelle est rencontrée.
Linux
Sous Linux, write est l'appel système numéro 1[3].