unlink(2) System Calls Manual unlink(2) NAVN unlink, unlinkat - slet et navn og maske filen navnet refererer til BIBLIOTEK Standard C library (libc, -lc) SYNOPSIS #include int unlink(const char *sti); #include /* Definition af AT_*-konstanter */ #include int unlinkat(int dirfd, const char *sti, int flag); Feature Test Macro Requirements for glibc (se feature_test_macros(7)): unlinkat(): Siden glibc 2.10: _POSIX_C_SOURCE >= 200809L For glibc 2.10: _ATFILE_SOURCE BESKRIVELSE unlink() sletter et navn fra filsystemet. Hvis det navn var den sidste henvisning til en fil og ingen processer har filen aben, sa slettes filen og den brugte plads gores tilgaengelig for ny brug. Hvis navnet var den sidste henvisning til en fil, men eventuelle processer stadig har filen aben, sa vil filen fortsat eksistere indtil den sidste fildeskriptor, der refererer til den lukkes. Hvis navnet refererede til en symbolsk henvisning, sa fjernes henvisningen. Hvis navnet refereret til en sokkel, FIFO, eller enhed, sa fjernes navnet for denne men processer, der har objektet abent kan fortsat bruge det. unlinkat() Systemkaldet unlinkat() fungerer pa praecis samme made som enten unlink() eller rmdir(2) (afhaengig af hvorvidt flag inkluderer flaget AT_REMOVEDIR) undtagen for forskellene beskrevet her. Hvis sti er relative sa fortolkes den relativt til mappen refereret til af fildeskriptoren dirfd (frem for relativ til den nuvaerende arbejdsmappe for den kaldende proces, som gores af unlink() og rmdir(2) for et relativt stinavn). Hvis sti er relativ og dirfd er den specielle vaerdi AT_FDCWD, sa fortolkes sti relativt til den nuvaerende arbejdsmappe for den kaldende proces (som unlink() og rmdir(2)). Hvis sti er foraeldet, sa ignoreres dirfd. flag er en bitmaske der enten kan angives som 0, eller af ORing-samlende flag-vaerdier, der kontrollerer operationen af unlinkat(). I ojeblikket er kun et sadant flag defineret: AT_REMOVEDIR Som standard udforer unlinkat() det samme som unlink() pa sti. Hvis flaget AT_REMOVEDIR er angivet udfores det samme som rmdir(2) pa sti. Se openat(2) for en forklaring pa behovet for unlinkat(). RETURVAERDI Ved succes returneres nul. Ved fejl returneres -1 og errno angives for at indikere fejlen. FEJL EACCES Skriveadgang til mappen indeholdende sti er ikke tilladt for processens effektive UID, eller en af mapperne i sti tillod ikke sogning. (Se ogsa path_resolution(7)). EBUSY Henvisningen kan ikke fjernes pa sti, da den bruges af systemet eller en anden proces; for eksempel er det et monteringspunkt eller NFS-klientprogrammet oprettede den, da den repraesenterer en aktiv men ellers navnelos iknude (>>FS silly renamed<<). EFAULT sti peger uden for dit tilgaengelige adresserum. EIO Der opstod en I/O-fejl. EISDIR sti refererer til en mappe. (Dette er ikke-POSIX-vaerdien returneret siden Linux 2.1.132). ELOOP For mange symbolske henvisninger blev modt under oversaettelse af sti. ENAMETOOLONG sti var for langt. ENOENT En komponent i sti findes ikke eller er en haengende symbolsk henvisning, eller sti er tom. ENOMEM Utilstraekkelig kernehukommelse var tilgaengelig. ENOTDIR En kompoent brugt som en mappe i sti er ikke, reelt, en mappe. EPERM Systemet tillader ikke at henvisning fjernes for mapper, eller fjernelse af henvisning for mapper kraever privilegier, som den kaldende proces ikke har. (Dette er den POSIX-foreskrevet fejlreturnering; som anfort ovenfor, sa returnerer Linux EISDIR i dette tilfaelde). EPERM (kun Linux) Filsystemet tillader ikke fjernelse af filhenvisninger. EPERM eller EACCES Mappen indeholdende sti har den klaebende del (S_ISVTX) angivet og processens effektive UID er hverken UID'en for filen, der slettes, eller mappen der indeholder filen, og processen er ikke privilegeret (Linux: har ikke funktionen CAP_FOWNER). EPERM Filen der skal have fjernet henvisningen er markeret som uforanderlig eller tilfoj-kun. (Se FS_IOC_SETFLAGS(2const)). EROFS sti refererer til en fil pa et skrivebeskyttet filsystem.. De samme fejl der opstod for unlink() og rmdir(2) kan ogsa opsta for unlinkat(). De folgende yderligere fejl kan opsta for unlinkat(): EBADF sti er relativ men dirfd er hverken AT_FDCWD eller en en gyldig fildeskriptor. EINVAL En ugyldig flagvaerdi blev angivet i flags. EISDIR sti refererer til en mappe, og AT_REMOVEDIR var ikke angivet i flag. ENOTDIR sti er relativ og dirfd er en fildeskriptor, der refererer til en fil andet end en mappe. STANDARDER POSIX.1-2024. HISTORIK unlink() SVr4, 4.3BSD, POSIX.1-2001. unlinkat() POSIX.1-2008. Linux 2.6.16, glibc 2.4. glibc Pa aeldre kerner hvor unlinkat() er utilgaengelig, falder glibc-omslagsfunktionen tilbage til brugen af unlink() eller rmdir(2). Nar sti er relativ, sa konstruerer glibc et stinavn baseret pa den symbolske henvisning i /proc/self/fd, der svarer til argumentet dirfd. FEJL Ulykkeligheder i protokollen under NFS kan medfore uventede fravaer af filer, der stadig er i brug. SE OGSA rm(1), unlink(1), chmod(2), link(2), mknod(2), open(2), rename(2), rmdir(2), mkfifo(3), remove(3), path_resolution(7), symlink(7) OVERSAETTELSE Oversaettere af denne manual til dansk Joe Dalton 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 8. februar 2026 unlink(2)