Compartilhar via


ftell, _ftelli64

Obtém a posição atual de um ponteiro de arquivo.

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

Parâmetros

  • stream
    Estrutura de FILE de destino.

Valor de retorno

ftell e _ftelli64 retorna a posição atual do arquivo. O valor retornado por ftell e por _ftelli64 não reflita o deslocamento físico de byte para os fluxos abertos no modo de texto, como o modo de texto faz com que a conversão de retorno- avanço de linha de carro. Use ftell com fseekou_ftelli64com_fseeki64 para retornar para arquivar corretamente locais. Em erro, ftelle_ftelli64 invoca o manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução for permitida continuar, essas funções retornam – 1L e errno defina como uma das constantes, definido em. ERRNO.H. A constante de EBADF significa que o argumento de stream não é um valor de ponteiro válido do arquivo ou não se refere a um arquivo aberto. EINVAL significa que um argumento inválido de stream esteve passada para a função. Dispositivos pôde buscar (como os terminais e impressoras), ou quando stream não se refere a um arquivo aberto, o valor de retorno será indefinido.

Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.

Comentários

As funções de ftell ede _ftelli64recuperam a posição atual do ponteiro de arquivo (se houver) associado a stream*.* A posição é expressa como um desvio relativo ao início do fluxo.

Observe que quando um arquivo é aberto com dados, a posição atual do arquivo é determinada pela última operação de E/S, não por onde a gravação seguinte ocorrerá. Por exemplo, se um arquivo é aberto para anexar e a última operação era uma leitura, a posição do arquivo é onde a operação de leitura seguir não teria iniciado, onde a seguir começaria gravação. (Quando um arquivo é aberto com, a posição do arquivo é movida para um fim de arquivo antes de qualquer operação de gravação.) Se nenhuma operação de E/S ocorreu ainda em um arquivo aberto, anexando a posição do arquivo é o início do arquivo.

No modo de texto, CTRL+Z é interpretado como um caractere de participante de Arquivo na entrada. Em arquivos abertos leitura/gravação, fopen e qualquer verificação de rotinas relacionada para um CTRL+Z no final do arquivo e solte-o se possível. Isso é feito como usar a combinação de ftell e fseek ou _ftelli64 e _fseeki64, para se mover dentro de um arquivo que termina com um CTRL+Z pode fazer com que ftell ou _ftelli64 se comportem de forma incorreta próximo do fim do arquivo.

Essa função bloqueia o thread de chamada durante a execução e em virtude disso é seguro para threads. Para uma versão sem bloqueio, consulte _ftell_nolock.

Requisitos

Função

Cabeçalho necessário

Cabeçalhos opcionais

ftell

<stdio.h>

<errno.h>

_ftelli64

<stdio.h>

<errno.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

// 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 );
   }
}
  

Equivalência do .NET Framework

System::IO::FileStream::Position

Consulte também

Referência

E/S de fluxo

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64