Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

fgetpos, fgetpos64 - aktuellen Wert des Lese-/Schreibzeigers im Datenstrom ermitteln

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

int fgetpos(FILE *stream, fpos_t *pos);
int fgetpos64(FILE *stream, fpos64_t *pos);

Beschreibung

fgetpos() speichert den aktuellen Wert des Lese-/Schreibzeigers von stream in dem Objekt, auf das pos zeigt. Der gespeicherte Wert enthält Informationen, mit denen fsetpos() den Datenstrom auf die Position einstellen kann, die zurzeit des Aufrufs von fgetpos() aktuell war.

Es besteht kein funktioneller Unterschied zwischen fgetpos() und fgetpos64(), außer dass fgetpos64() einen fpos64_t-Datentyp verwendet.

Returnwert

0

bei Erfolg.

 

!= 0

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

BS2000
errno wird auf EBADF gesetzt. (Ende)

Fehler

fgetpos() schlägt fehl, wenn gilt:


EBADF

Der stream zu Grunde liegende Dateideskriptor ist nicht gültig.

 

ESPIPE

Der stream zu Grunde liegende Dateideskriptor ist einer Pipe oder FIFO zugeordnet.

Hinweise

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

BS2000
fgetpos() lässt sich auf Binärdateien (SAM im Binärmodus, PAM, INCORE) und Textdateien (SAM im Textmodus, ISAM) anwenden.
fgetpos() ist nicht anwendbar auf Systemdateien (SYSDTA, SYSLST, SYSOUT).

Für ISAM-Dateien ist das Funktionspaar fgetpos()/fsetpos() wesentlich performanter als das vergleichbare Funktionspaar ftell()/fseek().

Bei Satz-Ein-/Ausgabe liefert fgetpos() die Position hinter dem zuletzt gelesenen, geschriebenen oder gelöschten Satz bzw. die Position, die durch ein unmittelbar vorangegangenes Positionieren erreicht wurde.

Bei ISAM-Dateien mit Schlüsselverdoppelung liefert fgetpos() immer die Position hinter dem letzten Satz einer Gruppe mit gleichen Schlüsseln, wenn einer dieser Sätze zuvor gelesen, geschrieben oder gelöscht wurde.

Siehe auch

fseek(), fseek64(), lseek(), lseek64(), fsetpos(), fsetpos64(), ftell(), ftell64(), ungetc(), stdio.h.