.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1983, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)truncate.2 6.9 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-24 by Rik Faith .\" Modified 1996-10-22 by Eric S. Raymond .\" Modified 1998-12-21 by Andries Brouwer .\" Modified 2002-01-07 by Michael Kerrisk .\" Modified 2002-04-06 by Andries Brouwer .\" Modified 2004-06-23 by Michael Kerrisk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH TRUNCATE 2 "15. September 2017" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG truncate, ftruncate \- eine Datei auf eine bestimmte Länge verkürzen .SH ÜBERSICHT \fB#include \fP .br \fB#include \fP .PP \fBint truncate(const char *\fP\fIpath\fP\fB, off_t \fP\fIlength\fP\fB);\fP .br \fBint ftruncate(int \fP\fIfd\fP\fB, off_t \fP\fIlength\fP\fB);\fP .PP .in -4n Mit Glibc erforderliche Makros (siehe \fBfeature_test_macros\fP(7)): .in .ad l .PP Für \fBtruncate\fP(): .RS 4 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 .br || /* Seit Glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L || /* Glibc\-Versionen <= 2.19: */ _BSD_SOURCE .RE .PP Für \fBftruncate\fP(): .RS 4 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 || /* Seit Glibc 2.3.5: */ _POSIX_C_SOURCE\ >=\ 200112L || /* Glibc\-Versionen <= 2.19: */ _BSD_SOURCE .RE .ad b .SH BESCHREIBUNG Die Funktionen \fBtruncate\fP() und \fBftruncate\fP() bewirken, dass die reguläre Datei, die durch \fIpath\fP oder \fIfd\fP angegeben ist, auf eine Größe von exakt \fIlength\fP Byte verkürzt wird. .PP 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 (\(aq\e0\(aq) gelesen. .PP Der Datei\-Offset wird nicht geändert. .PP 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 \fBinode\fP(7)) für die Datei aktualisiert; die Modus\-Bits Set\-User\-ID und Set\-Group\-ID können gelöscht werden. .PP Für \fBftruncate\fP() muss die Datei zum Schreiben geöffnet sein, für \fBtruncate\fP() muss die Datei schreibbar sein. .SH RÜCKGABEWERT Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER Für \fBtruncate\fP(): .TP \fBEACCES\fP Eine Komponente des Pfad\-Präfix darf nicht durchsucht werden oder die benannte Datei kann vom Benutzer nicht geschrieben werden (siehe auch \fBpath_resolution\fP(7).) .TP \fBEFAULT\fP Das Argument \fIpath\fP zeigt aus dem dem Prozess zugewiesenen Adressraum heraus. .TP \fBEFBIG\fP Das Argument \fIlength\fP ist größer als die maximale Dateigröße. (XSI) .TP \fBEINTR\fP Der Aufruf wurde von einem Signal\-Handler unterbrochen, während er auf den Abschluss wartete (siehe \fBfcntl\fP(2) und \fBsignal\fP(7)). .TP \fBEINVAL\fP Das Argument \fIlength\fP ist negativ oder größer als die maximale Dateigröße. .TP \fBEIO\fP Bei der Aktualisierung des Inodes trat ein E/A\-Fehler auf. .TP \fBEISDIR\fP Die angegebene Datei ist ein Verzeichnis. .TP \fBELOOP\fP Beim Übersetzen des Pfadnamens wurden zu viele symbolische Links vorgefunden. .TP \fBENAMETOOLONG\fP Ein Teil eines Pfades ist größer als 255 Zeichen oder ein kompletter Pfadname überschreitet eine Größe von 1023 Zeichen. .TP \fBENOENT\fP Die angegebene Datei existiert nicht. .TP \fBENOTDIR\fP Eine Komponente des Pfad\-Präfixes ist kein Verzeichnis. .TP \fBEPERM\fP .\" This happens for at least MSDOS and VFAT filesystems .\" on kernel 2.6.13 Das unterliegende Dateisystem erlaubt keine Vergrößerung der Datei über ihre aktuelle Größe hinaus. .TP \fBEPERM\fP Die Aktion wurde durch eine Dateiversiegelung verhindert; siehe \fBfcntl\fP(2). .TP \fBEROFS\fP Die angegebene Datei befindet sich auf einem nur lesbaren (read\-only) Dateisystem. .TP \fBETXTBSY\fP Die Datei ist eine ausführbare Datei, die ausgeführt wird. .PP Für \fBftruncate\fP() gelten die gleichen Fehlermeldungen. Anstelle von Dingen, die mit \fBpath\fP schieflaufen können, gibt es jetzt Dinge, die mit dem Dateideskriptor \fBfd\fP schiefgehen können: .TP \fBEBADF\fP \fIfd\fP ist kein zulässiger Dateideskriptor. .TP \fBEBADF\fP oder \fBEINVAL\fP \fIfd\fP ist nicht zum Schreiben geöffnet. .TP \fBEINVAL\fP \fIfd\fP referenziert keine reguläre Datei oder ein gemeinsam benutztes POSIX\-Speicherobjekt. .TP \fBEINVAL\fP oder \fBEBADF\fP Der Dateideskriptor \fIfd\fP ist nicht zum Schreiben offen. POSIX erlaubt beide Fehler für diesen Fall und portable Anwendungen sollten damit umgehen können. (Linux erzeugt \fBEINVAL\fP.) .SH "KONFORM ZU" .\" POSIX.1-1996 has .\" .BR ftruncate (). .\" POSIX.1-2001 also has .\" .BR truncate (), .\" as an XSI extension. .\" .LP .\" SVr4 documents additional .\" .BR truncate () .\" error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK. SVr4 documents for .\" .BR ftruncate () .\" an additional EAGAIN error condition. POSIX.1\-2001, POSIX.1\-2008, 4.4BSD, SVr4 (diese Systemaufrufe traten zuerst in BSD 4.2 auf). .SH ANMERKUNGEN \fBftruncate\fP() kann auch dazu verwandt werden, die Größe eines gemeinsam benutzten POSIX\-Speicherobjektes zu setzen; siehe \fBshm_open\fP(7). .PP .\" At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002 Die BESCHREIBUNG oben ist für XSI\-konforme Systeme gedacht. Für nicht XSI\-konforme Systeme erlaubt der POSIX\-Standard zweierlei Verhalten von \fBftruncate\fP, wenn \fIlength\fP größer ist als die Dateilänge (beachten Sie, dass \fBtruncate\fP 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 \fBtruncate\fP() und \fBftruncate\fP() nicht, um eine Datei über ihre aktuelle Größe hinweg zu erweitern. Ein namhaftes Beispiel für Linux ist VFAT. .PP Die ursprünglichen Linux\-Systemaufrufe \fBtruncate\fP() und \fBftruncate\fP() wurden nicht entwickelt, um große Datei\-Offsets zu behandeln. Folglich fügte Linux 2.4 die Systemaufrufe \fBtruncate64\fP() und \fBftruncate64\fP() 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. .PP Auf einigen 32\-Bit\-Architekturen unterscheidet sich die Aufrufsignatur dieser Systemaufrufe. Die Gründe sind in \fBsyscall\fP(2) beschrieben. .SH FEHLER .\" http://sourceware.org/bugzilla/show_bug.cgi?id=12037 Ein Fehler der Header\-Dateien von Glibc 2.12 hatte zur Folge, dass der erforderliche Minimalwert von \fB_POSIX_C_SOURCE\fP zur Bereitstellung der Deklaration von \fBftruncate\fP() 200809L war anstatt 200112L. Der Fehler ist in späteren Versionen der Glibc behoben. .SH "SIEHE AUCH" \fBtruncate\fP(1), \fBopen\fP(2), \fBstat\fP(2), \fBpath_resolution\fP(7) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 4.16 des Projekts Linux\-\fIman\-pages\fP. 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/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Dennis Stampfer , Martin Eberhard Schauer , Helge Kreutzmann und Mario Blättermann 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 .