oracular (3) fseek.3.gz

Provided by: manpages-de-dev_4.23.1-1_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-Sicher │
       └────────────────────────────────────────────────────────────────────┴───────────────────────┴───────────┘

STANDARDS

       C11, POSIX.1-2008.

GESCHICHTE

       POSIX.1-2001, C89.

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⟩.