_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