fread
Bir akışından verileri okur.
size_t fread(
void *buffer,
size_t size,
size_t count,
FILE *stream
);
Parametreler
buffer
Veri için depolama konumu.size
Madde boyutunu bayt cinsinden.count
Okunması gereken öğeleri en fazla sayısı.stream
İşaretçi FILE yapısı.
Dönüş Değeri
freadolabilen tam öğe sayısı gerçekte okunan, verir daha az count bir hata oluşursa veya dosyanın sonuna ulaşmadan karşılaşılırsa count*.* Use feof veya ferror okuma hatası dosya sonu durumundan ayırt etmek için işlevi.size Veya count 0, fread 0 ve arabellek içeriği değişmeden döndürür.stream Veya buffer bir null işaretçi fread açıklandığı gibi geçersiz bir parametre işleyiciyi çağırır Parametre Doğrulama.Yürütülmesine devam etmek için izin verilmişse, bu işlevi ayarlar errno için EINVAL ve 0 döndürür.
Bkz: _doserrno, errno, _sys_errlist ve _sys_nerr bu ve diğer hata kodları hakkında daha fazla bilgi için.
Notlar
fread İşlevi okur en çok count öğeleri size giriş baytlar stream ve içinde saklar buffer*.* İlişkili dosya işaretçisi stream (varsa) gerçekte okunan bayt sayısı yükselir.Belirtilen akış metin modunda açılırsa, satır başı return–linefeed çiftleri tek satır besleme karakteri ile değiştirilir.Değiştirilen dosya işaretçisi veya dönüş değeri üzerinde hiçbir etkisi yoktur.Bir hata oluşursa belirsiz dosya işaretçisi konumdur.Kısmen okuma öğesinin değeri belirlenemiyor.
Bu işlev başka iş kilitler.Kilitleme sürüm gerekirse, _fread_nolock.
Gereksinimler
İşlev |
Gerekli başlık |
---|---|
fread |
<stdio.h> |
Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.
Örnek
// 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" );
}