truncate

Autres langues

Langue: de

Version: 8. September 2002 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

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