Partilhar via


_Write

Grava dados em um arquivo.

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

Parâmetros

  • fd
    Descritor de arquivo do arquivo no qual os dados são gravados.

  • buffer
    Dados a serem gravados.

  • count
    Número de bytes.

Valor de retorno

Se for bem-sucedido, _write Retorna o número de bytes realmente gravados. Se o espaço real, restante no disco é menor do que o dimensionar do buffer a função está tentando gravar no disco, _write Falha e não limpa qualquer Sumário do buffer no disco. Um valor retornado de – 1 indica um erro.Se forem passados parâmetros inválidos, essa função chama o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução terá permissão para continuar, a função retornará -1 e errno é definido como um dos três valores: EBADF, que significa que o descritor de arquivo é inválido ou o arquivo não está aberto para gravação; ENOSPC, que significa que não há suficiente espaço disponível no dispositivo para a operação; ou EINVAL, que significa que buffer era um ponteiro nulo.

See _doserrno, errno, _sys_errlist e _sys_nerr para obter mais informações sobre esses e outros códigos retorno.

Se o arquivo é aberto no modo de texto, cada caractere de avanço de linha será substituído por um retorno de carro – o emparelhar de avanço de linha na saída.A substituição não afeta o valor retornado.

Comentários

The _write gravações de função count bytes do buffer no arquivo associado fd. A operação de gravar começa na posição corrente do ponteiro do arquivo (se houver) associada ao arquivo determinado.Se o arquivo está em aberto para acrescentar, a operação terá início no participante do arquivo corrente.Após a operação de gravar, o ponteiro do arquivo é aumentado pelo número de bytes realmente gravados.

Durante a gravação de arquivos abertos no modo de texto, _write trata um caractere CTRL+Z sistema autônomo a participante de arquivo lógico. Ao gravar em um dispositivo, _write trata um caractere CTRL+Z no buffer sistema autônomo um terminador de saída.

Requisitos

Rotina

Cabeçalho necessário

_write

<io.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

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

Wrote 36 bytes to file.

Consulte também

Referência

E/S de nível baixo

Fwrite

_Open, _wopen

_read