Condividi tramite


_write

Scrive i dati in un file.

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

Parametri

  • fd
    Descrittore del file in cui i dati vengono scritti.

  • buffer
    Dati da scrivere.

  • count
    Numero di byte.

Valore restituito

Se l'operazione viene completata correttamente, _write restituisce il numero di byte effettivamente scritto.Se effettivo spazio rimanente su disco è inferiore alla dimensione del buffer alla funzione sta tentando di scrivere sul disco, _write avrà esito negativo e non vi arrossisce qualsiasi contenuto del buffer sul disco.Restituito un valore pari a 1 indica un errore.Se non valido i parametri vengono passati, richiama di questa funzione il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, la funzione restituisce -1 e errno è impostato su uno dei tre valori: EBADF, ovvero il descrittore del file non è valido o se il file non è aperto per scrivere; ENOSPC, ovvero non c " è sufficiente spazio a sinistra sul dispositivo per l'operazione; o EINVAL, ovvero quella buffer è un puntatore null.

vedere _doserrno, errno, _sys_errlist e _sys_nerr per ulteriori informazioni su questi e su altri, codici restituiti.

Se il file viene aperto in modalità testo, ogni carattere di avanzamento riga viene sostituito con una coppia ritorno a capo-avanzamento riga nell'output.La sostituzione non influisce sul valore restituito.

Note

_write la funzione scrive count byte da buffer nel file associato fd.L'operazione di scrittura partire dalla posizione corrente del puntatore del file (se presenti) associato al file specificato.Se il file è aperto per aggiungere, inizia di passaggi alla fine corrente del file.Dopo l'operazione di scrittura, il puntatore del file viene aumentato dal numero di byte effettivamente scritto.

Quando la scrittura nei file è aperto in modalità testo, _write considera un carattere di CTRL+Z come il fine del file logico.Quando si crea un dispositivo, _write considera un carattere di CTRL+Z nel buffer come terminatore di output.

Requisiti

routine

Intestazione di associazione

_write

<io.h>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Esempio

// 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 );
}
  

Vedere anche

Riferimenti

L'I/O di basso livello

fwrite

_open, _wopen

_read