Aracılığıyla paylaş


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

.NET Framework Eşdeğeri

System::IO::FileStream::Read

Ayrıca bkz.

Başvuru

G/ç

fwrite

_read