ftell, _ftelli64

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Obtiene la posición actual del puntero de archivo.

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

Parámetros

stream
Destino FILE estructura.

ftelly _ftelli64 devuelven la posición actual del archivo. El valor devuelto por ftell y _ftelli64 no reflejen el desplazamiento de bytes físico para las secuencias que se abre en modo de texto, porque el modo de texto hace que la traducción de retorno de carro-avance de transporte. Utilice ftell con fseeko_ftelli64con_fseeki64 para volver a ubicaciones de archivo correctamente. En caso de error, ftelly_ftelli64 invocan el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, estas funciones devuelven-1 L y el conjunto errno a uno de dos constantes, definidas en ERRNO. H. El EBADF constante significa el stream argumento no es un valor de puntero de archivo válido o no hace referencia a un archivo abierto. EINVALsignifica que no es válido stream argumento se pasa a la función. En los dispositivos incapaces de búsqueda (como terminales e impresoras), o cuando stream no hace referencia a un archivo abierto, el valor devuelto es indefinido.

Consulte _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros, códigos de retorno.

El ftell y _ftelli64funciones recuperan la posición actual del puntero de archivo (si existe) asociada a stream . La posición se expresa como un desplazamiento relativo al principio de la secuencia.

Tenga en cuenta que, cuando se abre un archivo para anexar datos, la posición actual del archivo se determina por la última operación de E/S, no por donde se produciría la siguiente escritura. Por ejemplo, si se abre un archivo para un anexo y la última operación fue una lectura, la posición del archivo es el punto donde podría iniciar la siguiente operación de lectura, no donde la siguiente escritura iniciaría. (Cuando se abre un archivo para anexar, la posición del archivo se mueve al final del archivo antes de cualquier operación de escritura). Si no se ha producido ninguna operación de E/S en un archivo abierto para anexar, la posición del archivo es el principio del archivo.

En modo de texto, CTRL+Z se interpreta como un carácter de final de archivo en la entrada. En los archivos abiertos para lectura/escritura, fopen y todas las rutinas relacionadas, buscar un CTRL+Z al final del archivo y quitarlo si es posible. Esto se hace porque usa la combinación de ftell y fseek o _ftelli64 y _fseeki64, para desplazarse por un archivo que finaliza con CTRL+Z puede hacer ftell o _ftelli64 se comporte incorrectamente cerca del final del archivo.

Esta función bloquea el subproceso que realiza la llamada durante la ejecución y, por tanto, es seguro para subprocesos. Para consultar una versión que no realiza el bloqueo, vea _ftell_nolock.

FunciónEncabezado necesarioEncabezados opcionales
ftell<stdio.h><errno.h>
_ftelli64<stdio.h><errno.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

// 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  

System::IO::FileStream::Position

E/S de secuencia
fopen, _wfopen
fgetpos
fseek, _fseeki64
_lseek, _lseeki64

Mostrar: