fread
Считывает данные из потока.
size_t fread(
void *buffer,
size_t size,
size_t count,
FILE *stream
);
Параметры
buffer
Место хранения для данных.size
Размер элемента (в байтах).count
Максимальное количество элементов, которые необходимо считать.stream
Указатель на FILE структура.
Возвращаемое значение
fread возвращает общее число фактически считанных элементов, которые могут быть меньше count при возникновении ошибки или если конец файла обнаружен до достижения count*.* Используйте feof OR ferror функция, чтобы различать ошибку чтения из условий конца файла.If size OR count 0 fread возвращает значение 0, а содержимое буфера не меняются.If stream OR buffer указатель null, fread недопустимый параметр вызывает обработчик, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то наборы этой функции errno В EINVAL и возвращает 0.
См. _doserrno, errno, _sys_errlist и _sys_nerr дополнительные сведения об этих и других, кодов ошибок.
Заметки
fread считывает, пока функция count элементы size байты из ввода stream и сохраняет их в пределах buffer*.* Указатель файла, связанный с stream (если он имеется), увеличивается на число фактически считанных байтов.Если поток открыт в режиме текст, то пары возвращени-перевода строки экипажа заменяются одним символом перевода строки.Замена не влияет на указателе файла или возвращаемом значении.Позиция файл-указателя непредвиденна при возникновении ошибки.Значение частично прочитанного элемента не может быть определено.
Эта функция ожидания блокирует другие потоки.Если необходима версия, используйте non-блокируя _fread_nolock.
Требования
Функция |
Обязательный заголовок |
---|---|
fread |
<stdio.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
// 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" );
}
Эквивалент в .NET Framework
System:: Ввода-вывода:: FileStream:: Чтение