ftell, _ftelli64

Ottiene la posizione corrente del puntatore del file.

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

Parametri

  • stream
    database di destinazione FILE struttura.

Valore restituito

ftell e _ftelli64 restituire la posizione corrente del file.Il valore restituito da ftell e _ftelli64 non può riflettere l'offset di byte fisico per i flussi aperti in modalità testo, perché la modalità testo provoca la conversione di ritorno a capo-avanzamento shopping.utilizzo ftell con fseeko_ftelli64con_fseeki64 per ripristinare i percorsi di file correttamente.Sull'errore, ftelle_ftelli64 richiamare il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, ritorno di queste funzioni - 1L e set errno a una di due costanti, definito in ERRNO.H.EBADF la costante significa stream l'argomento non è un valore di puntatore di file valido o non fa riferimento a un file aperto.EINVAL indica un non valido stream l'argomento è stato passato alla funzione.Nei dispositivi incapaci di individuare quali i terminal e stampanti, oppure quando stream non fa riferimento a un file aperto, il valore restituito è definito.

vedere _doserrno, errno, _sys_errlist e _sys_nerr per ulteriori informazioni su questi e su altri, codici restituiti.

Note

ftell e _ftelli64le funzioni vengono recuperate la posizione corrente del puntatore del file (se presenti) associato stream*.* La posizione è espressa come un offset relativo all'inizio del flusso.

Notare che quando un file viene aperto per aggiungere i dati, la posizione corrente del file è determinata dall'ultima operazione di I/O, non dalla posizione di seguito scrivono si verificano.Ad esempio, se un file è aperto per un aggiungere e all'ultima operazione è in lettura, il percorso del file è il punto in cui l'operazione di lettura seguente comincerebbe, non in cui il seguente scrive inizierebbe.(Quando un file viene aperto per aggiungere, il percorso del file viene spostata verso la fine di un file prima di qualsiasi operazione di scrittura.) Se nessuna delle operazioni di I/O nuovamente si è verificata in un file aperto per aggiungere, il percorso del file è l'inizio del file.

In modalità testo, CTRL+Z viene interpretato come carattere di fine file di input.In aprire file per la lettura/scrittura, fopen e qualsiasi controllo della routine correlato per un CTRL+Z alla fine del file e ne rimuove se possibile.Questa operazione viene eseguita perché utilizzare la combinazione di ftell e fseek o _ftelli64 e _fseeki64, per spostarsi all'interno di un file che termina con un CTRL+Z può causare ftell o _ftelli64 per comportarsi in modo errato alla fine del file.

Questa funzione blocca il thread chiamante durante l'esecuzione quindi è thread-safe.per una versione non di blocco, vedere _ftell_nolock.

Requisiti

Funzione

Intestazione di associazione

intestazioni facoltative

ftell

<stdio.h>

<errno.h>

_ftelli64

<stdio.h>

<errno.h>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Esempio

// 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 );
   }
}
  

Equivalente .NET Framework

System:: I:: FILESTREAM:: Percorso

Vedere anche

Riferimenti

Flusso I/O

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64