Scroll to navigation

symlink(2) System Calls Manual symlink(2)

NAVN

symlink, symlinkat - lav et nyt navn for en fil

BIBLIOTEK

Standard C library (libc-lc)

SYNOPSIS

#include <unistd.h>
int symlink(const char *target, const char *linkpath);
#include <fcntl.h>           /* Definition af AT_*-konstanter */
#include <unistd.h>
int symlinkat(const char *target, int newdirfd, const char *linkpath);

Feature Test Macro Requirements for glibc (se feature_test_macros(7)):

symlink():


_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* glibc <= 2.19: */ _BSD_SOURCE

symlinkat():


Siden glibc 2.10:
_POSIX_C_SOURCE >= 200809L
Før glibc 2.10:
_ATFILE_SOURCE

BESKRIVELSE

symlink() opretter en symbolsk henvisning navngivet linkpath, der indeholder strengen target.

Symbolske henvisninger fortolkes på kørselstidspunktet som om indholdet af henvisningen var erstattet ind i stien der følges for at finde en fil eller en mappe.

Symbolske henvisninger kan indeholde ..-stikomponenter, der (hvis brugt i starten af henvisningen) refererer til overmapperne på det som henvisningen befinder sig i.

En symbolsk henvisning (også kendt som en blød henvisning) kan pege på en eksisterende fil eller til en ikkeeksisterende fil; det sidste tilfælde kaldes en dangling-henvisning.

Rettighederne for en symbolsk henvisning er irrelevante; ejerskabet ignoreres en henvisning følges (undtaget når funktionen protected_symlinks er aktiveret, som forklaret i proc(5)), men tjekkes når fjernelse eller omdøbning af henvisningen er anmodet og henvisningen er i en mappe med det klæbende bit-sæt (S_ISVTX).

Hvis linkpath findes, så vil den ikke blive overskrevet.

symlinkat()

Systemkaldet symlinkat() fungerer på præcis den samme måde som symlink(), med undtagelse af forskellene beskrevet her.

Hvis stinavnet angivet i linkpath er relativt, så fortolkes det relativt til mappen refereret til af fildeskriptoren newdirfd (frem for relativt til den nuværende arbejdsmappe for den kaldende proces, som gøres af symlink() for et relativt stinavn).

Hvis linkpath er relativt og newdirfd er den specielle værdi AT_FDCWD, så fortolkes linkpath relativt til den nuværende arbejdsmappe for den kaldende proces (som symlink()).

Hvis linkpath er absolut, så ignoreres newdirfd

Se openat(2) for en forklaring af behovet for symlinkat().

RETURVÆRDI

Ved succes returneres nul. Ved fejl returneres -1 og errno angives for at indikere fejlen.

FEJL

Skriveadgang til mappen indeholdende linkpath er nægtet, eller en af mapperne i stipræfikset for linkpath tillod ikke søgerettighed. (Se også path_resolution(7).)
(symlinkat()) linkpath er relativ men newdirfd er hverken AT_FDCWD eller en gyldig fildeskriptor.
Brugerens ressourcekvota på filsystemet er brugt op. Ressourcerne kan være iknuder eller diskblokke, afhængig af filsystemimplementeringen.
linkpath findes allerede.
target eller linkpath peger udenfor dit tilgængelige adresserum.
Der opstod en I/O-fejl.
For mange symbolske henvisninger blev mødt, da linkpath blev slået op.
target eller linkpath var for lang.
En mappekomponent i linkpath findes ikke eller er en symbolsk dangling-henvisning, eller target eller linkpath er en tom streng.
(symlinkat()) linkpath er et relativt stinavn og newdirfd refererer til en mappe, der er blevet slettet.
Utilstrækkelig kernehukommelse var tilgængelig.
Enheden indeholdende filen har ikke plads til det nye mappeelement.
En komponent brugt som en mappe i linkpath er ikke, reelt, en mappe.
(symlinkat()) linkpath er relativ og newdirfd er en fildeskriptor der refererer til en fil, der ikke er en mappe.
Filsystemet indeholdende linkpath understøtter ikke oprettelsen af symbolske henvisninger.
linkpath er på et skrivebeskyttet filsystem.

STANDARDER

POSIX.1-2024.

HISTORIK

SVr4, 4.3BSD, POSIX.1-2001.
POSIX.1-2008. Linux 2.6.16, glibc 2.4.

Glibc-noter

På ældre kerner hvor symlinkat() er utilgængelig, falder glibc-omslagsfunktionen tilbage til brugen af symlink(). Når linkpath er et relativt stinavn konstruerer glibc et stinavn baseret på den symbolske henvisning i /proc/self/fd, der svarer til argumentet newdirfd.

NOTER

Ingen kontrol af målet udføres.

Sletning af navnet refereret til af en symbolsk henvisning vil reelt slette filen (med mindre den også har andre kodede henvisninger). Hvis denne opførelse ikke er ønsket, så brug link(2).

SE OGSÅ

ln(1), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2), 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 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.

8. februar 2026 Linux man-pages 6.17