unlink(2)

NAVN
unlink, unlinkat - slet et navn og måske filen navnet refererer til

BIBLIOTEK
C-standardbibliotek (libc, -lc)

SYNOPSIS
#include <unistd.h>

int unlink(const char *sti);

#include <fcntl.h>           /* Definition af AT_*-konstanter */
#include <unistd.h>

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
    Før 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 åben, så slettes filen og den brugte plads gøres tilgængelig for ny brug.

Hvis navnet var den sidste henvisning til en fil, men eventuelle processer stadig har filen åben, så vil filen fortsat eksistere indtil den sidste fildeskriptor, der refererer til den lukkes.

Hvis navnet refererede til en symbolsk henvisning, så fjernes henvisningen.

Hvis navnet refereret til en sokkel, FIFO, eller enhed, så fjernes navnet for denne men processer, der har objektet åbent kan fortsat bruge det.

  unlinkat()
Systemkaldet unlinkat() fungerer på præcis samme måde som enten unlink() eller rmdir(2) (afhængig af hvorvidt flag inkluderer flaget AT_REMOVEDIR) undtagen for forskellene beskrevet her.

Hvis sti er relative så fortolkes den relativt til mappen refereret til af fildeskriptoren dirfd (frem for relativ til den nuværende arbejdsmappe for den kaldende proces, som gøres af unlink() og rmdir(2) for et relativt stinavn).

Hvis sti er relativ og dirfd er den specielle værdi AT_FDCWD, så fortolkes sti relativt til den nuværende arbejdsmappe for den kaldende proces (som unlink() og rmdir(2)).

Hvis sti er forældet, så ignoreres dirfd.

flag er en bitmaske der enten kan angives som 0, eller af ORing-samlende flag-værdier, der kontrollerer operationen af unlinkat(). I øjeblikket er kun et sådant flag defineret:

AT_REMOVEDIR
    Som standard udfører unlinkat() det samme som unlink() på sti. Hvis flaget AT_REMOVEDIR er angivet udføres det samme som rmdir(2) på sti.

Se openat(2) for en forklaring på behovet for unlinkat().

RETURVÆRDI
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 søgning. (Se også path_resolution(7)).

EBUSY
    Henvisningen kan ikke fjernes på sti, da den bruges af systemet eller en anden proces; for eksempel er det et monteringspunkt eller NFS-klientprogrammet oprettede den, da den repræsenterer en aktiv men ellers navneløs iknude (»FS silly renamed«).

EFAULT
    sti peger uden for dit tilgængelige adresserum.

EIO Der opstod en I/O-fejl.

EISDIR
    sti refererer til en mappe. (Dette er ikke-POSIX-værdien returneret siden Linux 2.1.132).

ELOOP
    For mange symbolske henvisninger blev mødt under oversættelse af sti.

ENAMETOOLONG
    sti var for langt.

ENOENT
    En komponent i sti findes ikke eller er en hængende symbolsk henvisning, eller sti er tom.

ENOMEM
    Utilstrækkelig kernehukommelse var tilgængelig.

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 kræver privilegier, som den kaldende proces ikke har. (Dette er den POSIX-foreskrevet fejlreturnering; som anført ovenfor, så returnerer Linux EISDIR i dette tilfælde).

EPERM (kun Linux)
    Filsystemet tillader ikke fjernelse af filhenvisninger.

EPERM eller EACCES
    Mappen indeholdende sti har den klæbende 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 tilføj-kun. (Se FS_IOC_SETFLAGS(2const)).

EROFS
    sti refererer til en fil på et skrivebeskyttet filsystem..

De samme fejl der opstod for unlink() og rmdir(2) kan også opstå for unlinkat(). De følgende yderligere fejl kan opstå for unlinkat():

EBADF
    sti er relativ men dirfd er hverken AT_FDCWD eller en en gyldig fildeskriptor.

EINVAL
    En ugyldig flagværdi 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
På ældre kerner hvor unlinkat() er utilgængelig, falder glibc-omslagsfunktionen tilbage til brugen af unlink() eller rmdir(2). Når sti er relativ, så konstruerer glibc et stinavn baseret på den symbolske henvisning i /proc/self/fd, der svarer til argumentet dirfd.

FEJL
Ulykkeligheder i protokollen under NFS kan medføre uventede fravær af filer, der stadig er i brug.

SE OGSÅ
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)

OVERSÆTTELSE
Oversættere af denne manual til dansk Joe Dalton <joedalton2@yahoo.dk>

Denne oversættelse er gratis dokumentation; læs GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) eller nyere for ophavsretbetingelser. Der er INGEN ANSVAR.

Hvis du støder på fejl i oversættelsen af ​​denne vejledning, skal du sende en besked til debian-l10n-danish@lists.debian.org.