Udostępnij za pośrednictwem


ftell, _ftelli64

Pobiera bieżącą pozycję wskaźnika pliku.

long ftell( 
   FILE *stream 
);
__int64 _ftelli64( 
   FILE *stream 
);

Parametry

  • stream
    Miejsce docelowe FILE struktury.

Wartość zwracana

ftelli _ftelli64 zwrotu bieżącej pozycji w pliku.Wartość zwracana przez ftell i _ftelli64 może nie odzwierciedlać w bajtach fizyczne przesunięcie dla strumieni otwartych w trybie tekstowym w trybie tekstowym powoduje, że przewóz tłumaczenia powrotu-znak wysuwu wiersza.Use ftell with fseekor_ftelli64with_fseeki64 to return to file locations correctly.W przypadku błędu ftell i _ftelli64 wywołania obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować te funkcje return-1 L i zestaw errno do jednego z dwóch stałych zdefiniowanych w numer błędu.H.EBADF Oznacza stałą stream argument nie jest prawidłowym plikiem wartość wskaźnika lub nie odwołuje się do otwartego pliku.EINVALoznacza nieprawidłową stream argument został przekazany do funkcji.Na urządzeniach niezdolny do znalezienia (takich jak terminale i drukarki) lub gdy stream nie odnosi się do otwartego pliku, wartość zwracana jest niezdefiniowany.

Aby uzyskać więcej informacji na temat tych i innych kodów powrotnych, zobacz _doserrno, errno, _sys_errlist, and _sys_nerr.

Uwagi

ftell i _ftelli64 funkcje pobierania bieżącej pozycji wskaźnika pliku (jeśli istnieje) skojarzone z stream*.* Stanowisko jest wyrażona jako przesunięcie względem początku strumienia.

Należy zauważyć, że po otwarciu pliku na dołączanie danych bieżącej pozycji w pliku zależy od ostatniej operacji We/Wy nie przez gdy nastąpi następny zapis mogą się pojawić.Na przykład jeśli plik jest otwarty dla operacji append i był ostatniej operacji odczytu, położenie pliku jest punktem gdzie następnej operacji odczytu rozpocznie, nie gdzie zacznie pisać dalej. (Gdy plik jest otwarty w celu dołączania, położenie pliku jest przenoszona do końca pliku przed jakimkolwiek działaniem zapisu). Jeśli jeszcze nie powstała żadnej operacji We/Wy na pliku otwartym dołączania, położenie pliku jest na początku pliku.

W trybie tekstowym CTRL + Z jest interpretowana jako znak końca pliku na wejściu.W przypadku plików otwartych do odczytu/zapisu fopen i wszystkich powiązanych procedur Wyszukaj CTRL + Z końcem pliku i usunąć go, jeśli to możliwe.To zrobić, ponieważ za pomocą kombinacji ftell i fseek lub _ftelli64 i _fseeki64, aby przenieść w pliku, który może powodować kończy CTRL + Z ftell lub _ftelli64 będzie działać nieprawidłowo w pobliżu koniec pliku.

Ta funkcja powoduje zablokowanie wywołania wątek podczas wykonywania i dlatego wątków.Aby uzyskać informacje na temat wersji bez blokady, zobacz _ftell_nolock.

Wymagania

Funkcja

Wymagany nagłówek

Opcjonalne nagłówki

ftell

<stdio.h>

<errno.h>

_ftelli64

<stdio.h>

<errno.h>

Dodatkowe informacje o zgodności – zobacz: Zgodność we Wprowadzeniu.

Przykład

// crt_ftell.c
// This program opens a file named CRT_FTELL.C
// for reading and tries to read 100 characters. It
// then uses ftell to determine the position of the
// file pointer and displays this position.
 

#include <stdio.h>

FILE *stream;

int main( void )
{
   long position;
   char list[100];
   if( fopen_s( &stream, "crt_ftell.c", "rb" ) == 0 )
   {
      // Move the pointer by reading data: 
      fread( list, sizeof( char ), 100, stream );
      // Get position after read: 
      position = ftell( stream );
      printf( "Position after trying to read 100 bytes: %ld\n",
              position );
      fclose( stream );
   }
}
  

Odpowiednik w programie .NET Framework

System::IO::FILESTREAM::Position

Zobacz też

Informacje

We/Wy strumienia

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64