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