Available in

(1) (2) (3) (7) (2)/de (2)/es (1)/fr (2)/fr (2)/ja (2)/ko (2)/nl (2)/pl (2)/ru (7)/zh_cn (7)/zh_tw

Contents

BEZEICHNUNG

truncate, ftruncate − kürzt eine Datei auf eine bestimmte Länge

ÜBERSICHT

#include <unistd.h>

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

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 Bytes abgeschnitten wird.

Wenn die Datei vorher größer war, gehen überschüssige Daten verloren. Wenn die Datei vorher kleiner war, wird sie vergrößert und die zusätzlichen Bytes werden als Nullen gelesen.

Der Dateizeiger wird nicht verändert.

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

RÜCKGABEWERT

Bei Erfolg gibt die Funktion 0 zurück. Bei Fehlern wird −1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

Für truncate:

EACCES

Ein Teil des Pfades kann nicht gelesen werden oder die Datei kann vom Benutzer nicht beschrieben werden.

EFAULT

pfad liegt außerhalb des Programmspeichers.

EFBIG

Der Parameter length ist größer als die maximale Dateigröße. (XSI)

EINTR

Während der Ausführung wurde ein Signal empfangen.

EINVAL

Der Parameter length ist negativ oder größer als die maximale Dateigröße.

EIO

Ein I/O Fehler ist beim aktualisieren der Inode aufgetreten.

EISDIR

pfad ist ein Verzeichnis, keine Datei.

ELOOP

Zu viele Symbolische Links wurden im Pfad gefunden.

ENAMETOOLONG

Ein Teil des Pfades ist größer als 255 Zeichen oder der komplette Pfad überschreitet eine Größe von 1023 Zeichen.

ENOENT

Die angegebene Datei existiert nicht.

ENOTDIR

Ein Teil des Pfades ist kein Verzeichnis.

EROFS

Die Datei befindet sich in einem read-only Dateisystem.

ETXTBSY

Die Datei ist eine Prozedur, 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 fd schiefgehen können:

EBADF

fd ist kein gültiger Dateideskriptor.

EINVAL oder EBADF

fd ist nicht zum Schreiben geöffnet.

EINVAL

fd referenziert einen Socket, nicht eine Datei.

KONFORM ZU

4.4BSD, SVr4 (diese Funktionsaufrufe traten zuerst in BSD 4.2 auf). POSIX 1003.1-1996 beschreibt ftruncate. POSIX 1003.1-2001 beschreibt ebenfalls truncate als eine XSI-Erweiterung.

SVr4 beschreibt zusätzlich die Fehler EMFILE, EMULTIHP, ENFILE und ENOLINK für truncate. SVr4 dokumentiert für ftruncate den zusätzlichen Fehler EAGAIN.

BERMERKUNGEN

Die Beschreibung oben ist für XSI-kompatible Systeme gedacht. Für nicht-XSI-kompatible Systeme erlaubt der POSIX-Standard zwei Verhalten von ftruncate, wenn length größer ist als die Dateilänge (beachten Sie, dass truncate ist für eine derartige Umgebung nicht spezifiziert): entweder wird ein Fehler zurückgeliefert oder die Datei wird vergrößert. (Die meisten Unixe folgen den XSI-Anforderungen.)

SEE ALSO

open(2).

COMMENTS

blog comments powered by Disqus