ftell, _ftelli64

Obtém a posição corrente do ponteiro de arquivo.

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

Parâmetros

  • stream
    Destino FILE estrutura.

Valor de retorno

ftell e _ftelli64 retorne a posição corrente 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 o carro return–linefeed tradução. Use ftell with fseekor_ftelli64with_fseeki64 to return to file locations correctly.On error, ftelland_ftelli64 invoke the invalid parameter handler, as described in Validação de parâmetro.Se a execução for permitida para continuar, essas funções retornam –1L e conjunto errno para uma das duas constantes, definida na ERRNO.H. The 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 em aberto. EINVAL significa uma inválido stream argumento foi passado para a função. Em dispositivos incapazes de busca (sistema autônomo, por exemplo, terminais e impressoras), ou quando stream não se refere a um arquivo em aberto, o valor retornado é indefinido.

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

Comentários

The ftell and _ftelli64functions retrieve the current position of the file pointer (if any) associated with stream*.* A posição é expressa sistema autônomo um deslocamento em relação ao início do fluxo.

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

No modo de texto CTRL+Z é interpretado sistema autônomo um caractere de participante de arquivo na entrada.Em arquivos abertos para leitura/gravação, fopen e todas as rotinas relacionadas verificar se há um CTRL+Z no participante do arquivo e removê-la se possível. Isso é concluído porque utilizando a combinação de ftell e fseek ou _ftelli64 e _fseeki64, para mover dentro de um arquivo que pode fazer com que termina com um CTRL+Z ftell ou _ftelli64 se comporte incorretamente no participante do arquivo.

Esta função bloqueia o segmento de chamada durante a execução e, portanto, é thread-safe.Para obter 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 obter informações adicionais 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 );
   }
}

Position after trying to read 100 bytes: 100

Equivalente do NET Framework

sistema::IO::FileStream::Position

Consulte também

Referência

Fluxo de E/S

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64