_tell, _telli64

Obtenha a posição do ponteiro de arquivo.

Sintaxe

long _tell(
   int handle
);
__int64 _telli64(
   int handle
);

Parâmetros

handle
Descritor de arquivo que faz referência a um arquivo aberto.

Valor retornado

A posição atual do ponteiro de arquivo. Em dispositivos sem capacidade de busca, o valor retornado será indefinido.

Um valor retornado -1L indica um erro. Se handle for um descritor de arquivo inválido, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, essas funções definirão errno como EBADF e retornarão -1L.

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

Comentários

A função _tell obtém a posição atual do ponteiro de arquivo (se houver) associado ao argumento handle. A posição é expressa como o número de bytes do início do arquivo. Para a função _telli64, esse valor é expresso como um inteiro de 64 bits.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Rotina Cabeçalho necessário
_tell, _telli64 <io.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// crt_tell.c
// This program uses _tell to tell the
// file pointer position after a file read.
//

#include <io.h>
#include <stdio.h>
#include <fcntl.h>
#include <share.h>
#include <string.h>

int main( void )
{
   int  fh;
   char buffer[500];

   if ( _sopen_s( &fh, "crt_tell.txt", _O_RDONLY, _SH_DENYNO, 0) )
   {
      char buff[50];
      _strerror_s( buff, sizeof(buff), NULL );
      printf( buff );
      exit( -1 );
   }

   if( _read( fh, buffer, 500 ) > 0 )
      printf( "Current file position is: %d\n", _tell( fh ) );
   _close( fh );
}

Entrada: crt_tell.txt

Line one.
Line two.

Saída

Current file position is: 20

Confira também

E/S de baixo nível
ftell, _ftelli64
_lseek, _lseeki64