Compartilhar via


_read

Leia dados de um arquivo.

int _read( 
   int fd, 
   void *buffer, 
   unsigned int count  
);

Parâmetros

  • fd
    O descritor de Arquivo que faz referência ao arquivo aberto.

  • buffer
    Local para armazenamento de dados.

  • count
    Número máximo de bytes.

Valor de retorno

o _read retorna o número de bytes, que pode ser menor que conta se houver menos do que contar os bytes deixados no arquivo ou se o arquivo esteve aberto no modo de texto, nesse caso retorno- cada linha par de retorno de carro (CR-LF) é substituída por um único caractere de alimentação de linha. Somente o único caractere de alimentação de linha é contado no valor de retorno. Reprovação não afeta o ponteiro de arquivo.

Se a função tentar ler no final do arquivo, retornará 0. Se fd não for válida, o arquivo não estiver aberto para leitura, ou o arquivo está bloqueado, o manipulador inválido do parâmetro é chamado, conforme descrito em Validação do parâmetro. Se a execução for permitida continuar, a função retornará – 1 e defina errno a EBADF.

Se o buffer é nulo, o manipulador inválido do parâmetro é invocado. Se a execução for permitida continuar, a função retorna -1 e errno é definido como EINVAL.

Para obter mais informações sobre esse e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, e _sys_nerr.

Comentários

A função de _read ler um máximo de bytes de contagem no buffer do arquivo associado com fd. A operação de leitura começa na posição atual do ponteiro de arquivo associado ao arquivo especificado. Após a operação de leitura, o ponteiro de arquivo para o caractere não lidas seguir.

Se o arquivo foi aberto no modo de texto, a leitura termina quando _read encontrar um caractere de CTRL+Z, que é tratado como um indicador de participante de Arquivo. Use _lseek para limpar o indicador de participante de Arquivo.

Requisitos

Rotina

Cabeçalho necessário

_read

<io.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.

Bibliotecas

Todas as versões das Bibliotecas em 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

E/S de nível inferior

_creat, _wcreat

fread

_open, _wopen

_write