Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ftell, ftell64, ftello, ftello64 - aktuellen Wert des Lese-/Schreibzeigers im Datenstrom ermitteln

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

long int ftell(FILE *stream);
long long ftell64(FILE *stream);
off_t ftello(FILE *stream);
off64_t ftello64(FILE *stream);

Beschreibung

Die Funktionen rmitteln den aktuellen Wert des Lese-/Schreibzeigers für den Datenstrom, auf den stream zeigt. Auf diesen Wert kann mit fseek()/fseeko() bzw. mit fseek64()/fseeko64() positioniert werden.

Die Funktion ftello() entspricht der modifizierten Funktion ftell(), mit der Ausnahme, dass das Offset-Argument den Typ off_t hat und der Fehler EOVERFLOW sich geändert hat.

Es besteht kein funktionaler Unterschied zwischen ftell() und ftell64(), außer dass ftell64() den Offset-Typ long long verwendet.

ftello64() ist wie ftello() definiert, außer dass ftello64() den Offset-Typ off64_t verwendet.

Returnwert

aktueller Wert des Lese-/Schreibzeigers



für den Datenstrom, d.h. die Anzahl der Bytes, die der Lese-/Schreibzeiger vom Dateianfang entfernt ist, bei Erfolg.


-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.


BS2000
aktueller Wert des Lese-/Schreibzeigers



d. h., die Anzahl der Bytes, die der Lese-/Schreibzeiger vom Dateianfang entfernt ist, bei Binärdateien, bei Erfolg.


absolute Position des Lese-/Schreibzeigers,



bei Textdateien, bei Erfolg.


-1

bei Fehler. errno wird auf ERANGE gesetzt, wenn die Dateiposition nicht in 4 Bytes darstellbar ist. (Ende)

Fehler

ftell(), ftell64(), ftello() und ftello64() schlagen fehl, wenn gilt: 

 

EBADF

Der stream zu Grunde liegende Dateideskriptor ist nicht zum Schreiben
geöffnet, oder der Datenstrom-Puffer muss bereinigt werden, und die Datei ist
nicht geöffnet.

 

ESPIPE

Der Dateideskriptor von stream ist mit einer Pipe oder FIFO verbunden.

 

EOVERFLOW

für ftell(): der resultierende Datei-Offset ist ein Wert, der in einem Objekt des
Typs long nicht korrekt dargestellt werden kann.

 

EOVERFLOW

für ftello(): der aktuelle Datei-Offset kann in einem Objekt des Typs off_t
nicht korrekt dargestellt werden.

Hinweise

Ob die Funktionen für eine BS2000- oder eine POSIX-Datei ausgeführt wird, hängt von der Programmumgebung ab.

BS2000
ftell() lässt sich auf Binärdateien (SAM im Binärmodus, PAM, INCORE) und Textdateien (SAM im Textmodus, ISAM) anwenden.

ftell() ist nicht anwendbar auf Systemdateien (SYSDTA, SYSLST, SYSOUT).

Da die Informationen über die Dateiposition in einem Feld zusammengefasst werden, ergeben sich für die Größe von SAM- und ISAM-Dateien folgende Einschränkungen:

SAM-Datei


ftell()/ftello()

ftell64()/ftello64()

Satzlänge

<= 2048 Byte

<= 32 KByte

Satzanzahl/Block

<= 255

< 32 K

Blockanzahl

<= 2047

-

ISAM-Datei


ftell()/ftello()

ftell64()/ftello64()

Satzlänge

<= 32 KByte

<= 32 KByte

Satzanzahl

< 32 K

-

(Ende)

Siehe auch

fopen(), fseek(), lseek(), stdio.h.