Udostępnij za pośrednictwem


fread

Odczytuje dane ze strumienia.

size_t fread( 
   void *buffer,
   size_t size,
   size_t count,
   FILE *stream 
);

Parametry

  • buffer
    Miejsca przechowywania danych.

  • size
    Rozmiar w bajtach.

  • count
    Maksymalna liczba elementów do odczytu.

  • stream
    Wskaźnik, aby FILE struktury.

Wartość zwracana

freadZwraca liczbę pełnych elementów odczytanych w rzeczywistości, które mogą być mniej niż count w przypadku wystąpienia błędu lub jeśli okaże się, przed osiągnięciem końca pliku count*.* Użyj feof lub ferror funkcji, aby odróżnić błąd odczytu z warunek końca pliku.Jeśli size lub count jest równa 0, fread zwraca wartość 0 i zawartość buforu nie ulegną zmianie.Jeśli stream lub buffer jest wskaźnik zerowy, fread wywołuje obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, ta funkcja ustawia errno do EINVAL i zwraca wartość 0.

Zobacz _doserrno, errno, _sys_errlist i _sys_nerr więcej informacji na temat tych i innych kodów błędów.

Uwagi

fread Funkcji odczytuje do count elementy z size bajtów w wejściowych danych stream i przechowuje je w buffer*.* Wskaźnik pliku skojarzone z stream (jeśli istnieje) wzrasta liczba bajtów odczytanych w rzeczywistości.Jeśli dany strumień jest otwarty w trybie tekstowym, przewozu ze zmianą wiersza pary są zastępowane znaki wysuwu wiersza pojedynczy.Zastąpienie nie ma wpływu na wskaźnik pliku lub zwracanej wartości.Położenie wskaźnika pliku jest nieokreślony, jeśli wystąpi błąd.Nie można określić wartość częściowo odczytu elementu.

Ta funkcja blokuje się inne wątki.Jeśli potrzebna jest wersja blokowania, należy użyć _fread_nolock.

Wymagania

Funkcja

Wymaganego nagłówka

fread

<stdio.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

Przykład

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

Odpowiednik w programie .NET Framework

System::IO::FileStream::Read

Zobacz też

Informacje

We/Wy strumienia

fwrite

_read