.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" and Copyright (c) 2011, Michael Kerrisk .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)lseek.2 6.5 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-23 by Rik Faith .\" Modified 1995-06-10 by Andries Brouwer .\" Modified 1996-10-31 by Eric S. Raymond .\" Modified 1998-01-17 by Michael Haardt .\" .\" Modified 2001-09-24 by Michael Haardt .\" Modified 2003-08-21 by Andries Brouwer .\" 2011-09-18, mtk, Added SEEK_DATA + SEEK_HOLE .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH lseek 2 "2. Mai 2024" "Linux man\-pages 6.8" .SH BEZEICHNUNG lseek \- den Dateiversatz für lesen/schreiben verändern .SH BIBLIOTHEK Standard\-C\-Bibliothek (\fIlibc\fP, \fI\-lc\fP) .SH ÜBERSICHT .nf \fB#include \fP .P \fBoff_t lseek(int \fP\fIdd\fP\fB, off_t \fP\fIVersatz\fP\fB, int \fP\fIdorthin\fP\fB);\fP .fi .SH BESCHREIBUNG \fBlseek\fP() setzt den Versatz der mit dem Dateideskriptor \fIdd\fP verbundenen offenen Dateideskription gemäß der \fIdorthin\fP\-Anweisung auf das Argument \fIVersatz\fP wie folgt: .TP \fBSEEK_SET\fP Der Datei\-Versatz wird auf \fIVersatz\fP byte gesetzt. .TP \fBSEEK_CUR\fP Der Datei\-Versatz wird auf die aktuelle Position plus \fIVersatz\fP byte gesetzt. .TP \fBSEEK_END\fP Der Datei\-Versatz wird auf die Dateigröße plus \fIVersatz\fP byte gesetzt. .P \fBlseek\fP() erlaubt es, den Versatz einer Datei hinter ihr Dateiende zu setzen. (Das ändert aber nicht die Größe der Datei.) Wenn dort später Daten geschrieben werden, geben Lesezugriffe auf die Lücke zwischen der eigentlichen Datei und den neuen Daten solange Nullbytes (»\e0«) zurück, bis tatsächlich Daten in die Lücke geschrieben werden. .SS "Suchen von Daten und Lücken in der Datei" Seit Version 3.1 unterstützt Linux die folgenden zusätzlichen Werte für \fIdorthin\fP: .TP \fBSEEK_DATA\fP Einstellen des Dateiversatzes auf die nächste Position in der Datei größer oder gleich \fIVersatz\fP, die Daten enthält. Falls \fIVersatz\fP auf Daten zeigt, wird der Datei\-Versatz auf \fIVersatz\fP gesetzt. .TP \fBSEEK_HOLE\fP Einstellen des Dateiversatzes auf die nächste Lücke in der Datei größer oder gleich als \fIVersatz\fP. Falls \fIVersatz\fP in ein Loch zeigt, wird der Datei\-Versatz auf \fIVersatz\fP gesetzt. Falls es hinter \fIVersatz\fP keine Lücke gibt, wird der Datei\-Versatz auf das Dateiende eingestellt (d.\ h., am Ende jeder Datei gibt es ein implizites Loch). .P In beiden der obigen Fälle schlägt \fBlseek\fP() fehl, wenn \fIVersatz\fP hinter das Dateiende weist. .P Diese Operationen ermöglichen Anwendungen, Löcher in einer Datei mit verstreut zugewiesenem Speicherplatz (sparsely allocated file) abzubilden. Dies kann nützlich sein für Anwendungen wie Werkzeuge für Datei\-Backups, die beim Erstellen von Backups Platz sparen und Löcher erhalten können, wenn sie über einen Mechanismus für die Erkennung von Löchern verfügen. .P .\" https://lkml.org/lkml/2011/4/22/79 .\" http://lwn.net/Articles/440255/ .\" http://blogs.oracle.com/bonwick/entry/seek_hole_and_seek_data Für die Zwecke dieser Operationen ist ein Loch eine Sequenz von Nullen, die (in der Regel) nicht in dem zugrunde liegenden Dateispeicher zugeordnet sind. Jedoch ist ein Dateisystem nicht verpflichtet Löcher zu berichten, sodass diese Operationen kein sicherer Mechanismus zum Abbilden des tatsächlich einer Datei zugeordneten Speicherplatzes sind. (Darüber hinaus wird eine Reihe von Nullen, die tatsächlich an den zugrunde liegenden Speicher geschrieben wurde, nicht als ein Loch gemeldet werden.) In der einfachsten Implementierung kann ein Dateisystem die Operationen unterstützen, indem \fBSEEK_HOLE\fP immer den Versatz des Dateiendes und \fBSEEK_DATA\fP immer den \fIVersatz\fP zurück geben (d.h. selbst wenn \fIVersatz\fP auf ein Loch weist, kann dieses Loch als eine Datensequenz angesehen werden, die aus Nullen besteht). .P Das Featuretest\-Makro \fB_GNU_SOURCE\fP muss definiert sein, um die Definitionen von \fBSEEK_DATA\fP und \fBSEEK_HOLE\fP von \fI\fP beziehen zu können. .P Die Operationen \fBSEEK_HOLE\fP und \fBSEEK_DATA\fP werden von den folgenden Dateisystemen unterstützt: .IP \[bu] 3 Btrfs (seit Linux 3.1) .IP \[bu] .\" commit 93862d5e1ab875664c6cc95254fc365028a48bb1 OCFS (seit Linux 3.2) .IP \[bu] XFS (seit Linux 3.5) .IP \[bu] Ext4 (seit Linux 3.8) .IP \[bu] \fBtmpfs\fP(5) (seit Linux 3.8) .IP \[bu] .\" commit 1c6dcbe5ceff81c2cf8d929646af675cd59fe7c0 .\" commit 24bab491220faa446d945624086d838af41d616c NFS (seit Linux 3.18) .IP \[bu] .\" commit 0b5da8db145bfd44266ac964a2636a0cf8d7c286 FUSE (seit Linux 4.5) .IP \[bu] .\" commit 3a27411cb4bc3ce31db228e3569ad01b462a4310 GFS2 (seit Linux 4.15) .SH RÜCKGABEWERT Nach erfolgreicher Ausführung gibt \fBlseek\fP() die neue Position in der Datei zurück, gemessen in Bytes vom Anfang der Datei. Anderenfalls wird der Wert \fI(off_t)\ \-1\fP zurückgegeben und \fIerrno\fP gesetzt, um den den Fehler anzuzeigen. .SH FEHLER .TP \fBEBADF\fP \fIdd\fP ist kein Deskriptor für eine geöffnete Datei. .TP \fBEINVAL\fP .\" Some systems may allow negative offsets for character devices .\" and/or for remote filesystems. \fIdorthin\fP ist ungültig. Oder: der resultierende Datei\-Versatz wäre negativ oder hinter dem Ende eines durchsuchbaren Geräts. .TP \fBENXIO\fP \fIdorthin\fP ist \fBSEEK_DATA\fP oder \fBSEEK_HOLE\fP und \fIVersatz\fP ist hinter dem Dateiende oder \fIdorthin\fP ist \fBSEEK_DATA\fP und \fIVersatz\fP ist in einem Loch am Dateiende. .TP \fBEOVERFLOW\fP .\" HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW) Der resultierende Datei\-Versatz kann nicht in einem \fIoff_t\fP dargestellt werden. .TP \fBESPIPE\fP \fIdd\fP beschreibt eine Pipe, einen Socket oder ein FIFO. .SH VERSIONEN .\" Other systems return the number of written characters, .\" using SEEK_SET to set the counter. (Of written characters.) Unter Linux schlägt die Verwendung von \fBlseek\fP() auf einem Terminal\-Gerät mit dem Fehler \fBESPIPE\fP fehl. .SH STANDARDS POSIX.1\-2008. .SH GESCHICHTE POSIX.1\-2001, SVr4, 4.3BSD. .P .\" FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future \fBSEEK_DATA\fP und \fBSEEK_HOLE\fP sind nicht standardisierte Erweiterungen, die auch in Solaris, FreeBSD und DragonFly BSD vorkommen; sie sind zur Aufnahme in die nächste POSIX\-Revision (Ausgabe 8) vorgeschlagen. .SH ANMERKUNGEN In \fBopen\fP(2) finden Sie Erläuterungen zu den Beziehungen zwischen Dateideskriptoren, offenen Dateideskriptionen und Dateien. .P Falls der Dateistatusschalter \fBO_APPEND\fP auf der offenen Datei\-Deskription gesetzt ist, verschiebt ein \fBwrite\fP(2) unabhängig von der Verwendung von \fBlseek\fP() immer den Dateiversatz an das Ende der Datei. .P Manche Geräte unterstützen kein Suchen und POSIX legt nicht fest, welche Geräte \fBlseek\fP() unterstützen müssen. .SH "SIEHE AUCH" \fBdup\fP(2), \fBfallocate\fP(2), \fBfork\fP(2), \fBopen\fP(2), \fBfseek\fP(3), \fBlseek64\fP(3), \fBposix_fallocate\fP(3) .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Peter Gerbrandt , Martin Eberhard Schauer , Mario Blättermann und Helge Kreutzmann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .