truncate(2) System Calls Manual truncate(2) NAVN truncate, ftruncate - afkort en fil til angivet laengde BIBLIOTEK Standard C library (libc, -lc) SYNOPSIS #include int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length); Feature Test Macro Requirements for glibc (se feature_test_macros(7)): truncate(): _XOPEN_SOURCE >= 500 || /* Siden glibc 2.12: */ _POSIX_C_SOURCE >= 200809L || /* glibc <= 2.19: */ _BSD_SOURCE ftruncate(): _XOPEN_SOURCE >= 500 || /* Siden glibc 2.3.5: */ _POSIX_C_SOURCE >= 200112L || /* glibc <= 2.19: */ _BSD_SOURCE BESKRIVELSE Funktionerne truncate() og ftruncate() far filen navngivet af sti eller refereret til af fd til at blive afkortet til en storrelse pa praecis laengde byte. Hvis filen tidligere var storre end den storrelse mistes de ekstra data. Hvis filen tidligere var kortere, sa udvides den, og den udvidede del laeses som null-byte ('\0'). Filforskydningen aendres ikke. Hvis storrelsen aendrede sig sa opdateres felterne st_ctime og st_mtime (respektivt, tid for sidste statusaendring og tid for seneste aendring; se inode(7)) for filerne og tilstandsbit'ene set-user-ID og set-group-ID kan blive ryddet. Med ftruncate() skal filen vaere aben for skrivning; med truncate() skal filen vaere skrivbar. RETURVAERDI Ved succes returneres nul. Ved fejl returneres -1 og errno angives for at indikere fejlen. FEJL For truncate(): EACCES Sogerettighed er naegtet for en komponent for stipraefikset eller den navngivne fil er ikke skrivbar for brugeren. (Se ogsa path_resolution(7)). EFAULT Argumentet sti peger udenfor processens allokerede adresserum. EFBIG Argumentet laengde er storre end den maksimale filstorrelse. (XSI) EINTR Mens blokeret og ventende pa fuldforelse blev kaldet afbrudt af en signalhandtering; se fcntl(2) og signal(7). EINVAL Argumentet laengde er negativt eller storre end den maksimale filstorrelse. EIO Der opstod en I/O-fejl under opdatering af iknuden. EISDIR Den navngivne fil er en mappe. ELOOP For mange symbolske henvisninger blev modt under oversaettelse af stinavnet. ENAMETOOLONG En komponent af et stinavn er storre end 255 tegn, eller et helt stinavn var storre end 1.023 tegn. ENOENT Den navngivne fil findes ikke. ENOTDIR En komponent i stipraefikset er ikke en mappe. EPERM Det underliggende filsystem understotter ikke udvidelse af en fil udover dens nuvaerende storrelse. EPERM Operationen blev forhindret af en filforsegling; se fcntl(2). EROFS Den navngivne fil befinder sig pa et skrivebeskyttet filsystem. ETXTBSY Filen er en korbar fil, der bliver afviklet. For ftruncate() gaelder de samme fejl, men i stedet for ting, der kan vaere galt med sti, sa har vi nu ting, der kan vaere galt med fildeskriptoren, fd: EBADF fd er ikke en gyldig filbeskrivelse. EBADF eller EINVAL fd er ikke aben for skriving. EINVAL fd refererer ikke en normal fil eller et POSIX-delt hukommelsesobjekt. EINVAL eller EBADF Fildeskriptoren fd er ikke aben for skrivning. POSIX-rettigheder og flytbare programmer skal handtere begge fejl i dette tilfaelde. (Linux laver EINVAL). VERSIONER Detaljerne i DESCRIPTION er for XSI-overholdende systemer. For ikke-XSI-overholdende systemer tillader POSIX-standarden to opforelser for ftruncate() nar laengde er storre end fillaengden (bemaerk at truncate() ikke er angivet overhovedet i sadan et miljo): returnerer hverken en fejl, eller udvider filen. Som de fleste UNIX-implementeringer, folger Linux XSI-kravet under handtering af standardfilsystemer. Nogle ej standardfilsystemer tillader dog ikke at truncate() og ftruncate() bruges til at udvide en fil udover sin nuvaerende laengde: et bemaerkelsesvaerdigt eksempel pa Linux er VFAT. Pa nogle 32-bit arkitekturer er den kaldende signatur for disse systemkald anderledes, af arsagerne beskrevet i syscall(2). STANDARDER POSIX.1-2024. HISTORIK POSIX.1-2001, SVr4, 4.2BSD. De oprindelige Linux-systemkald truncate() og ftruncate() blev ikke designet til at handtere store filforskydninger. Som konsekvens tilfojet Linux 2.4 systemkaldene truncate64() og ftruncate64(), der handterer store filer. Disse detaljer kan dog ignoreres af programmer, der bruger glibc, hvis omslagsfunktioner gennemsigtigt anvender de seneste systemkald, nar de er tilgaengelige. NOTER ftruncate() kan ogsa bruges til at angive storrelsen for et POSIX-delt hukommelsesobjekt; se shm_open(3). FEJL En teksthovedfilfejl i glibc 2.12 betod at minimumsvaerdien for _POSIX_C_SOURCE kraevede at vise erklaeringen af ftruncate() var 200809L i stedet for 200112L. Dette blev rettet i senere glibc-versioner. SE OGSA truncate(1), open(2), stat(2), path_resolution(7) OVERSAETTELSE Oversaettere af denne manual til dansk Joe Hansen Denne oversaettelse er gratis dokumentation; laes GNU General Public License version 3 eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR. Hvis du stoder pa fejl i oversaettelsen af denne vejledning, skal du sende en besked til . Linux man-pages 6.17 29. oktober 2025 truncate(2)