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