Compartilhar via


fRead

Lê dados de um fluxo.

size_t fread( 
   void *buffer,
   size_t size,
   size_t count,
   FILE *stream 
);

Parâmetros

  • buffer
    Local de armazenamento de dados.

  • size
    Item dimensionar em bytes.

  • count
    Número máximo de itens a serem lidos.

  • stream
    Ponteiro para FILE estrutura.

Valor de retorno

fread Retorna o número de itens completos, na verdade, lidos, que pode ser menor que count Se ocorrer um erro ou se o participante do arquivo for encontrado antes de chegar count*.* Use o feof ou ferror função para diferenciar um erro de leitura de uma condição de participante de arquivo. If size ou count é 0, fread Retorna 0 e o Sumário do buffer permanecem inalterado. If stream ou buffer é um ponteiro nulo, fread chama o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essa função define errno para EINVAL e retorna 0.

See _doserrno, errno, _sys_errlist e _sys_nerr para obter mais informações sobre esses e outros, códigos de erro.

Comentários

The fread função lê até count itens de size bytes de entrada stream e as armazena no buffer*.* O ponteiro de arquivo associado ao stream (se houver) é aumentado pelo número de bytes realmente lidos. Se determinado fluxo for aberto no modo de texto, carro return–linefeed pares são substituídos por caracteres de avanço de linha única.A substituição não tem efeito sobre o ponteiro do arquivo ou o valor retornado.A posição do ponteiro de arquivo estará desativada se ocorrer um erro.Não é possível determinar o valor de um item parcialmente leitura.

Esta função bloqueia outros threads.Se você precisar de uma versão sem bloqueio, use _fread_nolock.

Requisitos

Função

Cabeçalho necessário

fread

<stdio.h>

Para obter informações adicionais compatibilidade, consulte Compatibilidade na introdução.

Exemplo

// crt_fread.c
// This program opens a file named FREAD.OUT and
// writes 25 characters to the file. It then tries to open
// FREAD.OUT and read in 25 characters. If the attempt succeeds,
// the program displays the number of actual items read.
 
#include <stdio.h>

int main( void )
{
   FILE *stream;
   char list[30];
   int  i, numread, numwritten;

   // Open file in text mode:
   if( fopen_s( &stream, "fread.out", "w+t" ) == 0 )
   {
      for ( i = 0; i < 25; i++ )
         list[i] = (char)('z' - i);
      // Write 25 characters to stream 
      numwritten = fwrite( list, sizeof( char ), 25, stream );
      printf( "Wrote %d items\n", numwritten );
      fclose( stream );

   }
   else
      printf( "Problem opening the file\n" );

   if( fopen_s( &stream, "fread.out", "r+t" ) == 0 )
   {
      // Attempt to read in 25 characters 
      numread = fread( list, sizeof( char ), 25, stream );
      printf( "Number of items read = %d\n", numread );
      printf( "Contents of buffer = %.25s\n", list );
      fclose( stream );
   }
   else
      printf( "File could not be opened\n" );
}

Wrote 25 items Number of items read = 25 Contents of buffer = zyxwvutsrqponmlkjihgfedcb

Equivalente do NET Framework

sistema::IO::FileStream::Read

Consulte também

Referência

Fluxo de E/S

Fwrite

_read