Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir dosyadan verileri okur.
Sözdizimi
int _read(
int const fd,
void * const buffer,
unsigned const buffer_size
);
Parametreler
fd
Açık dosyaya başvuran dosya tanımlayıcısı.
buffer
Verilerin depolama konumu.
buffer_size
Okunacak bayt sayısı üst sınırı.
Dönüş değeri
_readokunan bayt sayısını döndürür. Bu sayı, dosyada bayt sayısından buffer_size az kalma durumundan veya dosyanın metin modunda açılmasından daha az olabilirbuffer_size. Metin modunda, her satır başı satır besleme çifti \r\n tek satır besleme karakteriyle \ndeğiştirilir. Dönüş değerinde yalnızca tek satır besleme karakteri sayılır. Değiştirme işlemi dosya işaretçisini etkilemez.
İşlev dosyanın sonunda okumaya çalışırsa 0 döndürür. fd Geçerli değilse, dosya okumak için açık değilse veya dosya kilitliyse, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, işlevi -1 döndürür ve olarak EBADFayarlanırerrno.
ise buffer veya isebuffer_size>INT_MAX, geçersiz parametre işleyicisi çağrılır.NULL Yürütmenin devam etmesi için izin verilirse, işlev -1 döndürür ve errno olarak EINVALayarlanır.
Bu ve diğer iade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.
Açıklamalar
işlevi ile _read fdilişkilendirilmiş dosyadan içine buffer en fazla buffer_size bayt okur. Okuma işlemi, verilen dosyayla ilişkili dosya işaretçisinin geçerli konumunda başlar. Okuma işleminden sonra, dosya işaretçisi bir sonraki okunmamış karakteri gösterir.
Dosya metin modunda açıldıysa, dosya sonu göstergesi olarak ele alınan CTRL+Z karakteriyle karşılaşıldığında _read okuma sonlandırılır. Dosya sonu göstergesini temizlemek için kullanın _lseek .
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
| Yordam | Gerekli başlık |
|---|---|
_read |
<io.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Kitaplıklar
C çalışma zamanı kitaplıklarının tüm sürümleri.
Ö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, bytesread;
unsigned int nbytes = 60000;
/* 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