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 akışta dosya sonu testlerini yapın.
Sözdizimi
int feof(
FILE *stream
);
Parametreler
stream
Yapı işaretçisi FILE .
Dönüş değeri
Bir feof okuma işlemi dosyanın sonundan sonra okumaya çalıştıysa işlev sıfır olmayan bir değer döndürür; aksi takdirde 0 döndürür. Akış işaretçisi iseNULL, işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse, errno olarak ayarlanır EINVAL ve feof 0 döndürür.
İade kodları hakkında daha fazla bilgi için bkz. errno, _doserrno, _sys_errlistve _sys_nerr.
Açıklamalar
Yordamı feof (hem işlev hem de makro olarak uygulanır) sonunun stream geçirilip geçirilmediğini belirler. Dosyanın sonu geçirildiğinde, akış kapatılana veya buna karşı , , fsetposfseekclearerr veya çağrılana kadar rewindokuma işlemleri bir dosya sonu göstergesi döndürür.
Örneğin, bir dosya 10 bayt içeriyorsa ve dosyadan 10 bayt okursanız, feof dosya işaretçisi dosyanın sonunda olsa bile, sonuna kadar okumayı denemediğiniz için 0 döndürür. Ancak 11. bayt okumaya çalıştığınızda sıfır olmayan bir değer döndürülür feof .
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
| İşlev | Gerekli başlık |
|---|---|
feof |
<stdio.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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 );
}
Giriş: crt_feof.txt
Line one.
Line two.
Çıktı
Number of bytes read = 19