_read
Lê dados de um arquivo.
int _read(
int fd,
void *buffer,
unsigned int count
);
Parâmetros
fd
Descritor de arquivo consultando o arquivo em aberto.buffer
Local de armazenamento de dados.Contagem
Número máximo de bytes.
Valor de retorno
_ler retorna o número de bytes lidos, que pode ser menor que Contagem se houver menos de Contagem bytes esquerda no arquivo ou se o arquivo foi aberto no modo de texto, caso em que cada carro return–line feed emparelhar (CR-LF) será substituído por um caractere de avanço de linha única.Apenas o caractere de avanço de linha única é contado no valor retornado.A substituição não afeta o ponteiro do arquivo.
Se a função tenta ler no participante do arquivo, ele retornará 0.If fd é inválido, o arquivo não está em aberto para leitura, ou o arquivo está bloqueado, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, a função retorna -1 e define errno para EBADF.
If buffer is 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 é conjunto para EINVAL.
Para obter mais informações sobre este e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist e _sys_nerr.
Comentários
The _read função lê um máximo de Contagem bytes em buffer do arquivo associado fd. A operação de leitura começa na posição corrente do ponteiro do arquivo associado ao arquivo especificado.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 será encerrada quando _read encontrar um caractere CTRL+Z, que é tratado sistema autônomo um indicador de participante de arquivo. Use _lseek para desmarcar o indicador de participante 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 do C em time de execução bibliotecas.
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