Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membaca data dari file.
Sintaks
int _read(
int const fd,
void * const buffer,
unsigned const buffer_size
);
Parameter
fd
Pendeskripsi file yang mengacu pada file yang terbuka.
buffer
Lokasi penyimpanan untuk data.
buffer_size
Jumlah maksimum byte yang akan dibaca.
Nilai hasil
_read mengembalikan jumlah byte yang dibaca, yang mungkin kurang dari buffer_size jika ada kurang dari buffer_size byte yang tersisa dalam file, atau jika file dibuka dalam mode teks. Dalam mode teks, setiap pasangan \r\n umpan baris kembali pengangkutan diganti dengan karakter \numpan baris tunggal . Hanya karakter umpan baris tunggal yang dihitung dalam nilai yang dikembalikan. Penggantian tidak memengaruhi penunjuk file.
Jika fungsi mencoba membaca di akhir file, fungsi akan mengembalikan 0. Jika fd tidak valid, file tidak terbuka untuk dibaca, atau file dikunci, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan -1 dan diatur errno ke EBADF.
Jika buffer adalah NULL, atau jika buffer_size>INT_MAX, handler parameter yang tidak valid dipanggil. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan -1 dan errno diatur ke EINVAL.
Untuk informasi selengkapnya tentang ini dan kode pengembalian lainnya, lihat errno, , _doserrno_sys_errlist, dan _sys_nerr.
Keterangan
Fungsi membaca _read maksimum buffer_size byte ke dalam buffer dari file yang terkait dengan fd. Operasi baca dimulai pada posisi pointer file saat ini yang terkait dengan file yang diberikan. Setelah operasi baca, penunjuk file menunjuk ke karakter belum dibaca berikutnya.
Jika file dibuka dalam mode teks, bacaan berakhir ketika _read menemukan karakter CTRL+Z, yang diperlakukan sebagai indikator akhir file. Gunakan _lseek untuk menghapus indikator akhir file.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
_read |
<io.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Pustaka
Semua versi pustaka run-time C.
Contoh
// 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 );
}
Input: crt_read.txt
Line one.
Line two.
Output
Read 19 bytes from file
Lihat juga
I/O tingkat rendah
_creat, _wcreat
fread
_open, _wopen
_write