feof
Pengujian untuk akhir file pada aliran.
Sintaks
int feof(
FILE *stream
);
Parameter
stream
Penunjuk ke FILE
struktur.
Nilai hasil
Fungsi feof
mengembalikan nilai bukan nol jika operasi baca telah mencoba membaca melewati akhir file; fungsi mengembalikan 0 sebaliknya. Jika penunjuk aliran adalah NULL
, fungsi memanggil handler parameter yang tidak valid, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, errno
diatur ke EINVAL
dan feof
mengembalikan 0.
Untuk informasi selengkapnya tentang kode pengembalian, lihat errno
, , _doserrno
_sys_errlist
, dan _sys_nerr
.
Keterangan
feof
Rutinitas (diimplementasikan baik sebagai fungsi maupun sebagai makro) menentukan apakah akhir stream
telah dilewatkan. Ketika akhir file diteruskan, operasi baca mengembalikan indikator akhir file hingga aliran ditutup atau sampai rewind
, , fsetpos
fseek
, atau clearerr
dipanggil terhadapnya.
Misalnya, jika file berisi 10 byte dan Anda membaca 10 byte dari file, feof
akan mengembalikan 0 karena, meskipun penunjuk file berada di akhir file, Anda belum mencoba membaca di luar akhir. Hanya setelah Anda mencoba membaca byte ke-11 akan feof
mengembalikan nilai bukan nol.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Fungsi | Header yang diperlukan |
---|---|
feof |
<stdio.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_feof.c
// This program uses feof to indicate when
// it reaches the end of the file CRT_FEOF.TXT. It also
// checks for errors with ferror.
//
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int count, total = 0;
char buffer[100];
FILE *stream;
fopen_s( &stream, "crt_feof.txt", "r" );
if( stream == NULL )
exit( 1 );
// Cycle until end of file reached:
while( !feof( stream ) )
{
// Attempt to read in 100 bytes:
count = fread( buffer, sizeof( char ), 100, stream );
if( ferror( stream ) ) {
perror( "Read error" );
break;
}
// Total up actual bytes read
total += count;
}
printf( "Number of bytes read = %d\n", total );
fclose( stream );
}
Input: crt_feof.txt
Line one.
Line two.
Output
Number of bytes read = 19
Lihat juga
Penanganan kesalahan
Streaming I/O
clearerr
_eof
ferror
perror
, _wperror