truncate(2) | System Calls Manual | truncate(2) |
truncate, ftruncate - snoei een bestand terug tot een bepaalde lengte
Standard C bibliotheek (libc, -lc)
#include <unistd.h>
int truncate(const char *pad, off_t lengte); int ftruncate(int fd, off_t lengte);
truncate():
_XOPEN_SOURCE >= 500
|| /* Vanaf glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* Glibc <= 2.19: */ _BSD_SOURCE
ftruncate():
_XOPEN_SOURCE >= 500
|| /* Vanaf glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L
|| /* Glibc <= 2.19: */ _BSD_SOURCE
truncate() en ftruncate() veroorzaken dat het bestand genoemd in pad of verwezen naar door bi teruggesnoeid wordt tot hoogstens lengte bytes in grootte.
Als het bestand eerder groter dan deze maat was zijn de extra gegevens verloren. Als het bestand eerder korter was is het onbepaald of het bestand onveranderd wordt gelaten of wordt verlengd. In het laatste geval leest het toegevoegde deel als genulde bytes ('\0').
De bestands afstand is niet veranderd.
Als de grootte veranderde, dan worden de st_ctime and st_mtime velden (respectievelijk, tijdstip van de laatste status verandering en tijdstip van de laatste wijziging; zie inode(7)) aangepast, en de set-user-ID en de set-group-ID modus bits mogen gewist worden.
Voor ftruncate() moet het bestand open zijn om te schrijven; voor truncate(), moet het bestand schrijfbaar zijn.
Bij succes wordt nul teruggegeven. Bij falen wordt -1 teruggegeven en wordt errno overeenkomstig gezet.
Voor truncate():
Voor ftruncate() zijn dezelfde fouten van toepassing, maar in plaats van zaken die fout kunnen gaan met padnaam, kunnen nu zaken fout gaan met de bestands beschrijving, fd:
POSIX.1-2001, POSIX.1-2008, 4.4BSD, SVr4 (deze functie aanroepen verschenen voor het eerst in BSD 4.2).
ftruncate() kan ook worden gebruikt om de grootte van een POSIX gedeeld geheugen object in te stellen; zie shm_open(3).
De details in BESCHRIJVING zijn voor systemen die voldoen aan XSI. Voor systemen die niet voldoen aan XSI staat de POSIX standaard twee gedragingen toe voor ftruncate() als length de bestandslengte overschrijd (let op dat truncate() is niet gespecificeerd in die omgeving): ofwel een fout teruggevende ofwel het bestand uitbreidende. Zoals de meeste UNIX implementaties volgt Linux de XSI eis bij in omgaan met eigen bestandssystemen. Echter, sommige niet-eigen bestandsystemen staan niet toe om truncate() en ftruncate() te gebruiken om een bestand uit te breiden boven zijn huidige lengte: een opmerkelijk voorbeeld op Linux is VFAT.
De originele Linux truncate() en ftruncate() systeem aanroepen waren niet ontworpen om grote bestands afstanden te behandelen.
Op sommige 32-bit architecturen, verschillen de oproepende signaturen voor deze systeem aanroepen, vanwege redenen zoals beschreven in syscall(2).
Een bug in een kop bestand van glibc 2.12 leidde er toe dat de minimale waarde van _POSIX_C_SOURCE in de declaratie van ftruncate() moest veranderen van 200809L in plaats van 200112L. Dit is opgelost in latere versies van glibc.
De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>
Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.
Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.
5 februari 2023 | Linux man-pagina's 6.03 |