Udostępnij za pośrednictwem


ftell, _ftelli64

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

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

Parametry

  • stream
    Docelowe FILE struktury.

Wartość zwracana

ftelli _ftelli64 zwraca bieżącą pozycję plik.Wartość zwracana przez ftell i _ftelli64 może nie odzwierciedlać przesunięcie w bajtach fizyczny dla strumieni otwartych w trybie tekstowym, ponieważ tłumaczenia ze zmianą wiersza przewozu powoduje, że w trybie tekstowym.Use ftell with fseekor_ftelli64with_fseeki64 to return to file locations correctly.W przypadku błędu ftelli_ftelli64 wywołania obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje te zwracają –1L i errno do jednego z dwóch stałych, zdefiniowane w ERRNO.H.EBADF Oznacza stałą stream argument nie jest prawidłowym plikiem wartością wskaźnik lub nie odnosi się do otwartego pliku.EINVALoznacza nieprawidłową stream przekazano argument do funkcji.Na urządzeniach niezdolny do znalezienia (takich jak terminale i drukarki) lub gdy stream nie odnosi się do otwartego pliku, zwracana wartość jest niezdefiniowana.

Zobacz _doserrno, errno, _sys_errlist i _sys_nerr uzyskać więcej informacji o tych i innych, kody zwracane.

Uwagi

ftell i _ftelli64funkcji pobrania bieżące położenie 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 otwarcie pliku dla dołączania danych bieżącej pozycji w pliku jest ustalona przez ostatniej operacji We/Wy nie gdzie mogłoby wystąpić następnego zapisu.Na przykład jeśli plik jest otwarty dla operacji append ostatniej operacji został odczyt, położenie pliku jest punktem, gdzie następnej operacji odczytu chce się uruchomić, nie następnego zapisu mogłyby zacząć.(Gdy plik jest otwarty w celu dołączania, położenie pliku jest przenoszona do końca pliku przed wykonaniem jakichkolwiek operacji zapisu). Jeśli operacja We/Wy, nie ma jeszcze na pliku otwartym dołączania wystąpił położenie pliku jest początku pliku.

W trybie tekstowym CTRL + Z jest interpretowana jako znaku końca pliku na dane wejściowe.W przypadku plików otwartych do odczytu/zapisu fopen i wszystkie powiązane procedury Sprawdź, czy klawisze CTRL + Z końcem pliku i usunąć go, jeśli to możliwe.Robi się, ponieważ przy użyciu kombinacji z ftell i fseek lub _ftelli64 i _fseeki64, aby przenieść w pliku, który może powodować kończy się na CTRL + Z ftell lub _ftelli64 do niewłaściwe w pobliżu końca pliku.

Ta funkcja blokuje wątek wywołujący podczas wykonywania i dlatego wielowątkowość.Blokowania wersji, zobacz _ftell_nolock.

Wymagania

Funkcja

Wymaganego nagłówka

Opcjonalna nagłówki

ftell

<stdio.h>

<errno.h>

_ftelli64

<stdio.h>

<errno.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności 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

Strumień we/wy

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64