Compartilhar via


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

Consulte também

Referência

Nível baixo e/S

_creat, _wcreat

fRead

Open, _wopen

Write