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