_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.