fread
Liest Daten aus einem Stream.
size_t fread(
void *buffer,
size_t size,
size_t count,
FILE *stream
);
Parameter
buffer
Speicherort für Daten.size
Elementgröße in Bytes.count
Maximale Anzahl der zu lesenden Elemente.stream
Zeiger auf FILE Struktur.
Rückgabewert
fread gibt die Anzahl der vollen Elementen tatsächlich gelesen zurück, die kleiner als count sind, wenn ein Fehler auftritt oder wenn das Ende der Datei vor erreichendem countfestgestellt wird*.* Verwenden Sie die feofferror-Funktion oder ein Lesefehler aus einer Dateiende-Bedingung zu unterscheiden.Wenn size oder count 0 ist, wird 0 zurückgegeben und der Puffer fread Inhalt sind unverändert.Wenn stream oder buffer ein NULL-Zeiger ist, ruft fread ungültige Parameter für ein, wie in Parametervalidierungbeschrieben.Wenn die Ausführung ermöglicht wird, um fortzufahren, gibt diese Funktion errno legt diesen fest EINVAL und 0 zurück.
Weitere Informationen finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr Weitere Informationen über diese und andere Fehlercodes.
Hinweise
Die fread-Funktion liest bis zum count-Elemente aus size Bytes aus der Eingabe stream und speichert sie in buffer*.* Der Dateizeiger, der stream zugeordnet ist (sofern vorhanden), wird durch die Anzahl von Bytes gelesen, die tatsächlich verbessert.Wenn der angegebene Stream im Textmodus geöffnet ist, werden Wagenrücklauf/Zeilenvorschub-Paare durch einzelne Zeilenvorschubzeichen ersetzt.Die Ersetzung hat keine Auswirkungen auf den Dateizeiger oder den Rückgabewert.Die Position der Dateizeiger unbegrenzt ist, wenn ein Fehler auftritt.Der Wert eines Elements lesen teilweise kann nicht bestimmt werden.
Diese Funktion Sperren andere Threads heraus.Wenn Sie eine nicht sperrend Version benötigen, verwenden Sie _fread_nolock.
Anforderungen
Funktion |
Erforderlicher Header |
---|---|
fread |
<stdio.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
Beispiel
// 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" );
}