Es wird empfohlen, Visual Studio 2017 zu verwenden

ftell, _ftelli64

 

Veröffentlicht: Juli 2016

Die neueste Dokumentation zu Visual Studio 2017 finden Sie unter Dokumentation zu Visual Studio 2017.

Ruft die aktuelle Position einen Dateizeiger ab.

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

Parameter

stream
Ziel FILE Struktur.

ftellund _ftelli64 die aktuelle Dateiposition zurückzugeben. Der von zurückgegebene Wert ftell und _ftelli64 der physischen Byteoffset für Datenströme, die im Textmodus geöffnet u. u. nicht wiedergegeben werden, weil im Textmodus Wagenrücklauf-Zeilenvorschub Übersetzung verursacht. Verwendung ftell mit fseekoder_ftelli64mit_fseeki64 Dateispeicherorte ordnungsgemäß wieder. Bei Fehler ftellund_ftelli64 den Handler für ungültige Parameter aufgerufen, wie in beschrieben Parametervalidierung. Wenn die weitere Ausführung zugelassen wird, diese Funktionen zurück – 1 L und legen errno auf eine der beiden Konstanten, die in ERRNO definiert. H. Die EBADF Konstante bedeutet, dass die stream Argument ist kein gültiger Datei Zeigerwert oder verweist nicht auf eine geöffnete Datei. EINVALbedeutet, dass eine ungültige stream Argument wurde an die Funktion übergeben. Auf Geräten, die keine Suchvorgänge (z. B. Terminals und Druckern) oder wenn stream verweist nicht auf eine geöffnete Datei, ist der Rückgabewert nicht definiert.

Finden Sie unter _doserrno, Errno, _sys_errlist und _sys_nerr Weitere Informationen zu diesen und anderen Rückgabecodes.

Die ftell und _ftelli64Funktionen Abrufen die aktuelle Position des Dateizeigers (falls vorhanden) zugeordnet stream . Die Position wird als ein Offset relativ zum Anfang des Streams ausgedrückt.

Beachten Sie, dass wenn eine Datei, zum Anfügen von Daten geöffnet wird, die aktuelle Dateiposition vom letzten e/a-Vorgang bestimmt wird nicht durch, in denen der nächste Schreibvorgang erfolgt. Wenn für eines Anfügevorgangs wird eine Datei geöffnet, und der letzte Vorgang ein Lesevorgang wurde, ist die Position des der Punkt, in dem nächste Lesevorgang gestartet werden konnte, nicht der nächste Schreibvorgang gestartet werden konnte. (Wenn eine Datei zum Anhängen geöffnet ist, wird die Position des am Dateiende vor jedem Schreibvorgang verschoben.) Wenn kein e/a-Vorgang für eine Datei zum Anhängen geöffnet stattgefunden hat, wird die Position des am Anfang der Datei.

Im Text-Modus wird STRG + Z als EOF Zeichen bei Eingabe interpretiert. In Dateien geöffnet, die für das Lesen/Schreiben fopen und alle zugehörige Routinen STRG + Z am Ende der Datei überprüfen und entfernen Sie sie wenn möglich. Dies geschieht, da die Kombination mit ftell und fseek oder _ftelli64 und _fseeki64, in einer Datei zu verschieben, die mit STRG + Z endet verursachen könnten ftell oder _ftelli64 am Ende der Datei nicht ordnungsgemäß verhält.

Diese Funktion sperrt den aufrufenden Thread während der Ausführung und daher threadsicher ist. Eine nicht sperrende Version finden Sie unter _ftell_nolock.

FunktionErforderlicher HeaderOptionale Header
ftell<stdio.h><errno.h>
_ftelli64<stdio.h><errno.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

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

Stream-e/a
Fopen, _wfopen
fgetpos
fseek-und _fseeki64
_lseek _lseeki64

Anzeigen: