fread
Čte data z datového proudu.
size_t fread(
void *buffer,
size_t size,
size_t count,
FILE *stream
);
Parametry
buffer
Umístění úložiště pro data.size
Velikost v bajtech.count
Maximální počet položek ke čtení.stream
Ukazatel na FILE struktury.
Vrácená hodnota
freadVrátí počet celých položek skutečně čtení, které mohou být nižší než count Pokud dojde k chybě nebo pokud je nalezen konec souboru před dosažením count*.* Použití feof nebo ferror funkce odlišit od konce souboru podmínku chyby čtení.Pokud size nebo count 0, fread vrátí hodnotu 0 a obsah vyrovnávací paměti nezměněny.Pokud stream nebo buffer je nulový ukazatel fread vyvolá obsluhu neplatný parametr popsaným v Ověření parametrů.Pokud je povoleno spuštění pokračovat, tato funkce nastaví errno na EINVAL a vrátí hodnotu 0.
Viz _doserrno, kód chyby, _sys_errlist a _sys_nerr Další informace o těchto a jiných kódů chyb.
Poznámky
fread Funkce čte až count položky size bajtů od vstupní stream a ukládá je v buffer*.* Ukazatel souboru spojené s stream (pokud existuje) je zvýšen počet bajtů, které jsou skutečně číst.Pokud daný datový proud je otevřen v textovém režimu, přepravu return–linefeed dvojice jsou nahrazeny znaky jednoho konce řádku.Nahrazení nemá žádný vliv na ukazatele souboru nebo vrácené hodnoty.Pozice ukazatele souboru je neurčité, pokud dojde k chybě.Nelze zjistit hodnotu částečně čtení položky.
Tato funkce uzamčení jiných podprocesů.Použijte pokud potřebujete verzi zamykání, _fread_nolock.
Požadavky
Function |
Požadované záhlaví |
---|---|
fread |
<stdio.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// 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" );
}