Exporter (0) Imprimer
Développer tout
and
div
eof
not
or
xor
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

_write

Écrit des données dans un fichier.

int _write(
   int fd,
   const void *buffer,
   unsigned int count 
);

fd

Descripteur de fichier du fichier dans lequel les données sont écrites.

buffer

Données à écrire.

count

Nombre d'octets

En cas de réussite, _write retourne le nombre d'octets réellement écrits. Si l'espace réel qui demeure sur le disque est inférieure à la taille de la mémoire tampon la fonction tente d'écrire sur disque, _write échoue et vide pas le contenu de la mémoire tampon sur le disque. Une valeur de retour de -1 indique une erreur. Si des paramètres non valides sont transmis, cette fonction appelle le gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à continuer, la fonction retourne -1 et errno a une des trois valeurs suivantes : EBADF, qui signifie que le descripteur de fichier n'est pas valide ou que le fichier n'est pas ouvert pour l'écriture ; ENOSPC, ce qui signifie qu'il n'y a pas assez d'espace autorisé sur le périphérique pour l'opération ; ou EINVAL, ce qui signifie que buffer est un pointeur null.

Consultez _doserrno, errno, _sys_errlist et _sys_nerr pour plus d'informations sur ces éléments et autres codes de retour.

Si le fichier est ouvert en mode texte, chaque caractère de saut de ligne est remplacé par une paire saut de ligne-retour chariot dans la sortie. Le remplacement n'affecte pas la valeur de retour.

La fonction _write écrit des octets count depuis buffer dans le fichier associé à fd. L'opération d'écriture commence à la position actuelle du pointeur de fichier (le cas échéant) associé au fichier donné. Si le fichier est ouvert pour ajouter, l'opération démarre à la fin actuelle du fichier. Après l'opération d'écriture, le pointeur de fichier est augmenté par le nombre d'octets réellement écrits.

Lorsqu'on écrit dans des fichiers ouvert en mode texte, _write traite un caractère CTRL+Z comme fin de fichier logique. Lors de l'écriture sur une unité, _write traite un caractère CTRL+Z dans la mémoire tampon comme un indicateur de sortie.

Routine

En-tête requis

_write

<io.h,>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

// crt__write.c
// 
// This program opens a file for output and uses _write to write
// some bytes to the file.

#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <share.h>

char buffer[] = "This is a test of '_write' function";

int main( void )
{
   int         fileHandle = 0;
   unsigned    bytesWritten = 0;

   if ( _sopen_s(&fileHandle, "write.o", _O_RDWR | _O_CREAT,
                  _SH_DENYNO, _S_IREAD | _S_IWRITE) )
      return -1;

   if (( bytesWritten = _write( fileHandle, buffer, sizeof( buffer ))) == -1 )
   {
      switch(errno)
      {
         case EBADF:
            perror("Bad file descriptor!");
            break;
         case ENOSPC:
            perror("No space left on device!");
            break;
         case EINVAL:
            perror("Invalid parameter: buffer was NULL!");
            break;
         default:
            // An unrelated error occured 
            perror("Unexpected error!");
      }
   }
   else
   {
      printf_s( "Wrote %u bytes to file.\n", bytesWritten );
   }
   _close( fileHandle );
}
A écrit 36 octets dans le fichier.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft