Aracılığıyla paylaş


_read

Verileri bir dosyadan okur.

int _read( 
   int fd, 
   void *buffer, 
   unsigned int count  
);

Parametreler

  • fd
    Açık olan dosyaya başvuran dosya tanımlayıcısı.

  • Arabellek
    Veri için depolama konumu.

  • Sayımı
    En fazla bayt sayısı.

Dönüş Değeri

_Okuma , daha az olabilir okunan bayt sayısını verir'den sayısı varsa daha az sayısı bayt sol dosyasında veya dosyayı metin modunda açarsa, her satır başı return–line (cr-lf) çifti, bu durumda besleme tek satır besleme karakteri ile değiştirilir.Yalnızca tek bir satır besleme karakteri dönüş değerinde sayılır.Değiştirilen dosya işaretçisi etkilemez.

İşlevi dosya sonu okumaya çalışırsa, 0 değerini döndürür.fd Olan geçersiz, dosyayı okumak için açık değil veya dosya kilitli, geçersiz parametre işleyicisi, açıklandığı şekilde çağrılır Parametre Doğrulama.Yürütülmesine devam etmek için ayarlar ve işlevini verir –1 veriliyorsa, errno için EBADF.

Arabellek olan null, geçersiz parametre işleyicisi çağrılır.Yürütülmesine devam etmek için izin verilmişse işlev-1 değerini döndürür ve errno ayarlamak EINVAL.

Bu ve diğer dönüş kodları hakkında daha fazla bilgi için bkz: _doserrno, errno, _sys_errlist ve _sys_nerr.

Notlar

_read İşlevi en çok okur sayısı baytlara arabellek ile ilişkili dosyadan fd.Verilen dosya ile ilişkili dosya işaretçisi geçerli konumunu okuma işlemi başlar.Okuma işleminden sonra dosya işaretçisi sonraki okunmamış karakterine işaret eder.

Dosyayı metin modunda açarsa, okuma ne zaman sona _read bir dosya sonu göstergesi olarak kabul edilir bir ctrl + z karakter karşılaşır.Use _lseek dosya sonu göstergesi temizleyin.

Gereksinimler

Yordamı

Gerekli başlık

_read

<io.h>

Daha fazla uyumluluk bilgileri için bkz: Uyumluluk giriş.

Kitaplıkları

Tüm sürümleri c çalışma zamanı kitaplıkları.

Örnek

// crt_read.c
/* This program opens a file named crt_read.txt
 * and tries to read 60,000 bytes from
 * that file using _read. It then displays the
 * actual number of bytes read.
 */

#include <fcntl.h>      /* Needed only for _O_RDWR definition */
#include <io.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

char buffer[60000];

int main( void )
{
   int fh;
   unsigned int nbytes = 60000, bytesread;

   /* Open file for input: */
   if( _sopen_s( &fh, "crt_read.txt", _O_RDONLY, _SH_DENYNO, 0 ) )
   {
      perror( "open failed on input file" );
      exit( 1 );
   }

   /* Read in input: */
   if( ( bytesread = _read( fh, buffer, nbytes ) ) <= 0 )
      perror( "Problem reading file" );
   else
      printf( "Read %u bytes from file\n", bytesread );

   _close( fh );
}

Giriş: crt_read.txt

Line one.
Line two.

Çıktı

Read 19 bytes from file

Ayrıca bkz.

Başvuru

Düşük Düzey G/Ç

_creat, _wcreat

fread

_open, _wopen

_write