Provided by: manpages-de-dev_4.21.0-2_all 

BEZEICHNUNG
fgetpos, fseek, fsetpos, ftell, rewind - Neupositionierung eines Streams
BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)
ÜBERSICHT
#include <stdio.h>
int fseek(FILE *datenstrom, long Versatz, int woher);
long ftell(FILE *datenstrom);
void rewind(FILE *datenstrom);
int fgetpos(FILE *restrict datenstrom, fpos_t *restrict pos);
int fsetpos(FILE *datenstrom, const fpos_t *pos);
BESCHREIBUNG
Die Funktion fseek() setzt den Datei-Positionszeiger für den Stream datenstrom. Die neue, in Byte
gemessene Position ergibt sich durch die Addition von Versatz zu der durch woher angegebenen Position.
Wenn woher auf SEEK_SET, SEEK_CUR oder SEEK_END gesetzt ist, ist der Versatz relativ zum Dateianfang, der
aktuellen Position oder dem Dateiende. Ein erfolgreicher Aufruf von fseek() löscht den Dateiendezeiger
für den Stream und macht alle Auswirkungen der Funktion ungetc(3) für den Stream rückgängig.
Die Funktion ftell() beschafft den aktuellen Wert des Dateipositionszeigers für den Stream, auf den
datenstrom zeigt.
Die Funktion rewind() setzt den Dateipositionszeiger für den Stream, auf den datenstrom zeigt, auf den
Dateianfang. Sie ist äquivalent zu
(void) fseek(stream, 0L, SEEK_SET)
löscht aber zusätzlich den Fehlerindikator für den Stream (siehe clearerr(3)).
Die Funktionen fgetpos() und fsetpos() sind alternative Schnittstellen und gleichwertig zu ftell() und
fseek() (mit woher auf SEEK_SET gesetzt). Sie bestimmen den aktuellen Wert des Dateiversatzes und
speichern ihn in oder von dem durch pos referenzierten Objekt. Auf einigen Nicht-UNIX-Systemen kann ein
Objekt fpos_t ein komplexes Objekt sein. Diese Routinen können der einzige Weg sein, einen Text-Stream
portabel neu zu positionieren.
Falls sich der Stream auf eine reguläre Datei bezieht und der resultierende Stream-Versatz hinter der
Größe der Datei liegt, werden nachfolgende Schreibaktionen die Datei mit einem Loch bis zu dem Versatz
erweitern, bevor Daten übergeben werden. Siehe lseek(2) zu Details zu der Dateisuch-Semantik.
RÜCKGABEWERT
Die Funktion rewind() gibt keinen Wert zurück. Bei erfolgreichem Abschluss geben fgetpos(), fseek(),
fsetpos() 0 zurück; ftell() den aktuellen Versatz. Anderenfalls wird -1 zurückgegeben und errno gesetzt,
um den Fehler anzuzeigen.
FEHLER
EINVAL Das Argument woher für fseek() war nicht SEEK_SET, SEEK_END oder SEEK_CUR. Oder: der entstehende
Datei-Versatz wäre negativ.
ESPIPE Der datenstrom unterliegende Dateideskriptor ist nicht durchsuchbar (er bezieht sich z.B. auf eine
Pipe, ein FIFO oder Socket).
Die Funktionen fgetpos(), fseek(), fsetpos() und ftell() können auch fehlschlagen und errno für alle
Fehler setzen, die für die Routinen fflush(3), fstat(2), lseek(2) und malloc(3) festgelegt sind.
ATTRIBUTE
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
┌─────────────────────────────────────────────────────────────────────┬───────────────────────┬─────────┐
│ Schnittstelle │ Attribut │ Wert │
├─────────────────────────────────────────────────────────────────────┼───────────────────────┼─────────┤
│ fseek(), ftell(), rewind(), fgetpos(), fsetpos() │ Multithread-Fähigkeit │ MT-Safe │
└─────────────────────────────────────────────────────────────────────┴───────────────────────┴─────────┘
STANDARDS
POSIX.1-2001, POSIX.1-2008, C99.
SIEHE AUCH
lseek(2), fseeko(3)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Martin Eberhard
Schauer <Martin.E.Schauer@gmx.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
Mailingliste der Übersetzer.
Linux man-pages 6.03 29. Dezember 2022 fseek(3)