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

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.

       ┌───────────────────────────────────────────────────────┬───────────────────────┬─────────┐
       │SchnittstelleAttributWert    │
       ├───────────────────────────────────────────────────────┼───────────────────────┼─────────┤
       │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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.