FSEEK(3)

BEZEICHNUNG
fgetpos, fseek, fsetpos, ftell, rewind - positioniere einen Stream neu

ÜBERSICHT
#include <stdio.h>

int fseek( FILE *stream, long offset, int whence);
long ftell( FILE *stream);
void rewind( FILE *stream);
int fgetpos( FILE *stream, fpos_t *pos);
int fsetpos( FILE *stream, fpos_t *pos);

BESCHREIBUNG
Die Funktion fseek setzt den Dateipositionszeiger für den Stream, auf den stream zeigt. Die neue Position, gemessen in Byte, wird erreicht durch addieren von offset zu der Position, die durch whence angegeben ist. Wenn whence auf SEEK_SET, SEEK_CUR, oder SEEK_END, gesetzt ist, ist der Offset relativ zum Dateianfang, der aktuellen Position, oder dem Dateiende. Ein erfolgreicher Aufruf der Funktion fseek löscht den Dateiendezeiger für den Stream und macht den Effekt der Funktion ungetc(3) Rückgängig für den Stream.

Die Funktion ftell holt der aktuellen Wert des Dateipositionszeigers für den Stream, auf den stream zeigt.

Die Funktion rewind setzt den Dateipositionszeigers für den Stream, auf den stream zeigt, auf den Dateianfang. Sie ist äquivalent zu:

    (void)fseek(stream, 0L, SEEK_SET)

außer dass der Fehlerindikator für den Stream auch gelöscht wird (siehe clearerr(3).

Die Funktionen fgetpos und fsetpos sind alternative Schnittstellen zu ftell und fseek (mit whence gesetzt auf SEEK_SET), die den aktuellen Wert des Dateioffsets lesen oder setzen von dem oder auf das Objekt angegeben durch pos. Auf einigen Nicht-UNIX-Systemen kann ein Objekt fpos_t ein komplexes Objekt sein, und diese Routinen können der einzige Weg sein, den Dateizeiger portabel zu beeinflussen.

RÜCKGABEWERTE
Die Funktion rewind gibt keinen Wert zurück. Bei erfolgreichem Abschluss geben fgetpos, fseek, fsetpos 0 zurück, während ftell den aktuellen Offset zurückgibt. Anderenfalls wird -1 zurückgegeben und die globale Variable errno gesetzt um den Fehler anzuzeigen.

FEHLER

EBADF
    Der angegebene stream ist nicht positionierbar.

EINVAL
    Das Argument whence für fseek war nicht SEEK_SET, SEEK_END, oder SEEK_CUR.

Die Funktion fgetpos, fseek, fsetpos, und ftell können auch fehlschlagen und errno setzen für Fehler, die für die Routinen fflush(3), fstat(2), lseek(2), und malloc(3) spezifiziert sind.

SIEHE AUCH
lseek(2).

KONFORM ZU
Die Funktionen fgetpos, fsetpos, fseek, ftell, und rewind sind konform zu ANSI C3.159-1989 (``ANSI C'').