truncate

TRUNCATE(2)                Linux-Programmierhandbuch               TRUNCATE(2)



BEZEICHNUNG
       truncate, ftruncate - eine Datei auf eine bestimmte Länge verkürzen

ÃBERSICHT
       #include <unistd.h>
       #include <sys/types.h>

       int truncate(const char *path, off_t length);
       int ftruncate(int fd, off_t length);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       Für truncate():
           _XOPEN_SOURCE >= 500
               || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE

       Für ftruncate():
           _XOPEN_SOURCE >= 500
               || /* Seit Glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L
               || /* Glibc-Versionen <= 2.19: */ _BSD_SOURCE

BESCHREIBUNG
       Die Funktionen truncate() und ftruncate() bewirken, dass die reguläre
       Datei, die durch path oder fd angegeben ist, auf eine GröÃe von exakt
       length Byte verkürzt wird.

       Falls die Datei vorher gröÃer war, geht ein Teil der Daten verloren.
       Falls die Datei vorher kleiner war, wird sie vergröÃert und der
       zusätzliche Teil wird als Null-Bytes ('\0') gelesen.

       Der Datei-Offset wird nicht geändert.

       Wenn die GröÃe geändert wurde, werden die Felder st_ctime und
       st_mtime (die Zeit der letzten Zustandsänderung und die Zeit der
       Modifikation; siehe inode(7)) für die Datei aktualisiert; die
       Modus-Bits Set-User-ID und Set-Group-ID können gelöscht werden.

       Für ftruncate() muss die Datei zum Schreiben geöffnet sein, für
       truncate() muss die Datei schreibbar sein.

RÃCKGABEWERT
       Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1
       zurückgegeben und errno entsprechend gesetzt.

FEHLER
       Für truncate():

       EACCES Eine Komponente des Pfad-Präfix darf nicht durchsucht werden
              oder die benannte Datei kann vom Benutzer nicht geschrieben
              werden (siehe auch path_resolution(7).)

       EFAULT Das Argument path zeigt aus dem dem Prozess zugewiesenen
              Adressraum heraus.

       EFBIG  Das Argument length ist gröÃer als die maximale DateigröÃe.
              (XSI)

       EINTR  Der Aufruf wurde von einem Signal-Handler unterbrochen, während
              er auf den Abschluss wartete (siehe fcntl(2) und signal(7)).

       EINVAL Das Argument length ist negativ oder gröÃer als die maximale
              DateigröÃe.

       EIO    Bei der Aktualisierung des Inodes trat ein E/A-Fehler auf.

       EISDIR Die angegebene Datei ist ein Verzeichnis.

       ELOOP  Beim Ãbersetzen des Pfadnamens wurden zu viele symbolische Links
              vorgefunden.

       ENAMETOOLONG
              Ein Teil eines Pfades ist gröÃer als 255 Zeichen oder ein
              kompletter Pfadname überschreitet eine GröÃe von 1023 Zeichen.

       ENOENT Die angegebene Datei existiert nicht.

       ENOTDIR
              Eine Komponente des Pfad-Präfixes ist kein Verzeichnis.

       EPERM  Das unterliegende Dateisystem erlaubt keine VergröÃerung der
              Datei über ihre aktuelle GröÃe hinaus.

       EPERM  Die Aktion wurde durch eine Dateiversiegelung verhindert; siehe
              fcntl(2).

       EROFS  Die angegebene Datei befindet sich auf einem nur lesbaren
              (read-only) Dateisystem.

       ETXTBSY
              Die Datei ist eine ausführbare Datei, die ausgeführt wird.

       Für ftruncate() gelten die gleichen Fehlermeldungen. Anstelle von
       Dingen, die mit path schieflaufen können, gibt es jetzt Dinge, die mit
       dem Dateideskriptor fd schiefgehen können:

       EBADF  fd ist kein zulässiger Dateideskriptor.

       EBADF oder EINVAL
              fd ist nicht zum Schreiben geöffnet.

       EINVAL fd referenziert keine reguläre Datei oder ein gemeinsam
              benutztes POSIX-Speicherobjekt.

       EINVAL oder EBADF
              Der Dateideskriptor fd ist nicht zum Schreiben offen. POSIX
              erlaubt beide Fehler für diesen Fall und portable Anwendungen
              sollten damit umgehen können. (Linux erzeugt EINVAL.)

KONFORM ZU
       POSIX.1-2001, POSIX.1-2008, 4.4BSD, SVr4 (diese Systemaufrufe traten
       zuerst in BSD 4.2 auf).

ANMERKUNGEN
       ftruncate() kann auch dazu verwandt werden, die GröÃe eines gemeinsam
       benutzten POSIX-Speicherobjektes zu setzen; siehe shm_open(7).

       Die BESCHREIBUNG oben ist für XSI-konforme Systeme gedacht. Für nicht
       XSI-konforme Systeme erlaubt der POSIX-Standard zweierlei Verhalten von
       ftruncate, wenn length gröÃer ist als die Dateilänge (beachten Sie,
       dass truncate für eine derartige Umgebung nicht spezifiziert ist):
       entweder wird ein Fehler zurückgeliefert oder die Datei wird
       vergröÃert. Wie die meisten Unix-Implementierungen folgt Linux der
       XSI-Forderung, wenn es sich mit nativen Dateisystemen befasst. Aber
       einige nicht native Dateisysteme gestatten die Verwendung von
       truncate() und ftruncate() nicht, um eine Datei über ihre aktuelle
       GröÃe hinweg zu erweitern. Ein namhaftes Beispiel für Linux ist VFAT.

       Die ursprünglichen Linux-Systemaufrufe truncate() und ftruncate()
       wurden nicht entwickelt, um groÃe Datei-Offsets zu behandeln. Folglich
       fügte Linux 2.4 die Systemaufrufe truncate64() und ftruncate64() für
       die Bearbeitung sehr groÃer Dateien hinzu. Allerdings können diese
       Details von Anwendungen ignoriert werden, welche die Glibc nutzen.
       Deren Wrapper-Funktionen verwenden die neueren Systemaufrufe
       transparent, wenn diese verfügbar sind.

       Auf einigen 32-Bit-Architekturen unterscheidet sich die Aufrufsignatur
       dieser Systemaufrufe. Die Gründe sind in syscall(2) beschrieben.

FEHLER
       Ein Fehler der Header-Dateien von Glibc 2.12 hatte zur Folge, dass der
       erforderliche Minimalwert von _POSIX_C_SOURCE zur Bereitstellung der
       Deklaration von ftruncate() 200809L war anstatt 200112L. Der Fehler ist
       in späteren Versionen der Glibc behoben.

SIEHE AUCH
       truncate(1), open(2), stat(2), path_resolution(7)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.03 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÃBERSETZUNG
       Die deutsche Ãbersetzung dieser Handbuchseite wurde von Dennis Stampfer
       <kontakt@dstampfer.de>, Martin Eberhard Schauer
       <Martin.E.Schauer@gmx.de>, Helge Kreutzmann <debian@helgefjell.de> und
       Mario Blättermann <mario.blaettermann@gmail.com> 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 <debian-l10n-
       german@lists.debian.org>.



Linux                            6. März 2019                     TRUNCATE(2)