fseek(3) Library Functions Manual fseek(3) BEZEICHNUNG fgetpos, fseek, fsetpos, ftell, rewind - Neupositionierung eines Streams BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include 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 fur 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() loscht den Dateiendezeiger fur den Stream und macht alle Auswirkungen der Funktion ungetc(3) fur den Stream ruckgangig. Die Funktion ftell() beschafft den aktuellen Wert des Dateipositionszeigers fur den Stream, auf den datenstrom zeigt. Die Funktion rewind() setzt den Dateipositionszeiger fur den Stream, auf den datenstrom zeigt, auf den Dateianfang. Sie ist aquivalent zu (void) fseek(stream, 0L, SEEK_SET) loscht aber zusatzlich den Fehlerindikator fur 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 konnen der einzige Weg sein, einen Text-Stream portabel neu zu positionieren. Falls sich der Stream auf eine regulare Datei bezieht und der resultierende Stream-Versatz hinter der Grosse der Datei liegt, werden nachfolgende Schreibaktionen die Datei mit einem Loch bis zu dem Versatz erweitern, bevor Daten ubergeben werden. Siehe lseek(2) zu Details zu der Dateisuch-Semantik. RUCKGABEWERT Die Funktion rewind() gibt keinen Wert zuruck. Bei erfolgreichem Abschluss geben fgetpos(), fseek(), fsetpos() 0 zuruck; ftell() den aktuellen Versatz. Anderenfalls wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EINVAL Das Argument woher fur fseek() war nicht SEEK_SET, SEEK_END oder SEEK_CUR. Oder: der entstehende Datei-Versatz ware 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() konnen auch fehlschlagen und errno fur alle Fehler setzen, die fur die Routinen fflush(3), fstat(2), lseek(2) und malloc(3) festgelegt sind. ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------------------------+-------------------------+-----------+ |Schnittstelle | Attribut | Wert | +--------------------------------+-------------------------+-----------+ |fseek(), ftell(), rewind(), | Multithread-Fahigkeit | MT-Sicher | |fgetpos(), fsetpos() | | | +--------------------------------+-------------------------+-----------+ STANDARDS C11, POSIX.1-2008. GESCHICHTE POSIX.1-2001, C89. SIEHE AUCH lseek(2), fseeko(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother , Martin Eberhard Schauer , Mario Blattermann und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 fseek(3)