Read
Lê dados de um arquivo.
int _read(
int fd,
void *buffer,
unsigned int count
);
Parâmetros
fd
Descritor de arquivo de referência para o arquivo aberto.buffer
Local de armazenamento de dados.Contagem
Número máximo de bytes.
Valor de retorno
_Leia retorna o número de bytes lidos, que pode ser menor do que contagem se houver menos que contagem bytes para a esquerda no arquivo ou se o arquivo foi aberto no modo de texto, caso em que cada return–line de carro feed par (CR-LF) é substituído por um caractere de avanço de linha única.Apenas o caractere de avanço de linha única é contado no valor de retorno.A substituição não afeta o ponteiro do arquivo.
Se a função tenta ler no fim do arquivo, ele retorna 0.Se fd é inválido, o arquivo não está aberto para leitura, ou o arquivo está bloqueado, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, a – 1 retorna de função e conjuntos de errno para EBADF.
Se buffer é Nulo, o manipulador de parâmetro inválido é invocado.Se a execução terá permissão para continuar, a função retornará -1 e errno for definido como EINVAL.
Para obter mais informações sobre este e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist e _sys_nerr.
Comentários
O _read função lê um máximo de contagem bytes em buffer de arquivo associado a fd.A operação de leitura começa na posição atual do ponteiro do arquivo associado com o arquivo fornecido.Após a operação de leitura, o ponteiro do arquivo aponta para o próximo caractere não lido.
Se o arquivo foi aberto no modo de texto, a leitura é encerrado quando _read encontrar um caractere CTRL + Z, que é tratado como um indicador de fim-de-arquivo.Use _lseek para limpar o indicador de fim-de-arquivo.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_read |
<io.h> |
Para obter mais informações de compatibilidade, consulte compatibilidade na introdução.
Bibliotecas
Todas as versões da bibliotecas de tempo de execução c.
Exemplo
// crt_read.c
/* This program opens a file named crt_read.txt
* and tries to read 60,000 bytes from
* that file using _read. It then displays the
* actual number of bytes read.
*/
#include <fcntl.h> /* Needed only for _O_RDWR definition */
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>
char buffer[60000];
int main( void )
{
int fh;
unsigned int nbytes = 60000, bytesread;
/* Open file for input: */
if( _sopen_s( &fh, "crt_read.txt", _O_RDONLY, _SH_DENYNO, 0 ) )
{
perror( "open failed on input file" );
exit( 1 );
}
/* Read in input: */
if( ( bytesread = _read( fh, buffer, nbytes ) ) <= 0 )
perror( "Problem reading file" );
else
printf( "Read %u bytes from file\n", bytesread );
_close( fh );
}
Entrada: crt_read.txt
Line one.
Line two.
Saída
Read 19 bytes from file