Freigeben über


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" );
}
  

.NET Framework-Entsprechung

System::EA::FileStream::Lesen

Siehe auch

Referenz

Stream E/A

fwrite

_read