ftell, _ftelli64

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

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

Parâmetros

  • stream
    Destino FILE estrutura.

Valor de retorno

ftelle _ftelli64 retornar a posição atual do arquivo.O valor retornado por ftell e _ftelli64 pode não refletir o deslocamento de byte físico para fluxos abertos no modo de texto, porque o modo de texto faz com que a tradução do carro e alimentação de linha.Use ftell with fseekor_ftelli64with_fseeki64 to return to file locations correctly.Sobre o erro, ftelle_ftelli64 chamar o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, essas funções retornam –1L e defina errno a uma das duas constantes, definidas no ERRNO.H.O EBADF constante significa que o stream argumento não é um valor de ponteiro de arquivo válido ou não faz referência a um arquivo aberto.EINVALsignifica uma inválido stream argumento foi passado para a função.Em dispositivos incapazes de busca (como, por exemplo, terminais e impressoras), ou quando stream não se refere a um arquivo aberto, o valor retornado é indefinido.

Consulte _doserrno, errno, _sys_errlist e _sys_nerr para obter mais informações sobre estes e outros, códigos de retorno.

Comentários

O ftell e _ftelli64funções recuperar a posição atual do ponteiro do arquivo (se houver) associada stream*.* A posição é expressa como um deslocamento em relação ao início do fluxo.

Observe que quando um arquivo é aberto para acrescentar dados, a posição atual do arquivo é determinada pela última operação de e/S, não por onde ocorrerá a próxima gravação.Por exemplo, se um arquivo é aberto para um acréscimo e a última operação foi uma leitura, a posição do arquivo é o ponto onde a próxima operação de leitura seria iniciado, não onde a próxima gravação seria iniciado.(Quando um arquivo é aberto para acrescentar, a posição do arquivo é movida para o final do arquivo antes de qualquer operação de gravação). Se nenhuma operação de e/S ainda tiver ocorrido em um arquivo aberto para acrescentar, a posição do arquivo é o início do arquivo.

No modo de texto, CTRL + Z é interpretado como um caractere de final de arquivo na entrada.Em arquivos abertos para leitura/gravação, fopen e todas as rotinas relacionadas verificar um CTRL + Z no final do arquivo e removê-lo, se possível.Isso é feito porque utilizando a combinação de ftell e fseek ou _ftelli64 e _fseeki64, para mover-se dentro de um arquivo que termina com um CTRL + Z pode causar ftell ou _ftelli64 se comporte incorretamente próximo ao final do arquivo.

Esta função bloqueia o segmento de chamada durante a execução e, portanto, é thread-safe.Para obter uma versão não-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 obter 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

Fluxo de i/O

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64