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 | ftell() und ftello() ermitteln den aktuellen Wert des Lese-/Schreibzeigers für den Datenstrom, auf den stream zeigt. Auf diesen Wert kann mit fseek()/fseeko() 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 ftell() / ftello() 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). (Ende)
|
Siehe auch | fopen() , fseek() , lseek() , stdio.h .
|