symlink(2) | System Calls Manual | symlink(2) |
symlink, symlinkat - erzeugt einen neuen Namen für eine Datei
Standard-C-Bibliothek (libc, -lc)
#include <unistd.h>
int symlink(const char *Ziel, const char *Linkpfad);
#include <fcntl.h> /* Definition der AT_*-Konstanten */ #include <unistd.h>
int symlinkat(const char *Ziel, int NeuVerzdd, const char *Linkpfad);
symlink():
_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L || /* Glibc <= 2.19: */ _BSD_SOURCE
symlinkat():
Seit Glibc 2.10: _POSIX_C_SOURCE >= 200809L Vor Glibc 2.10: _ATFILE_SOURCE
symlink erzeugt einen symbolischen Link Linkpfad, der die Zeichenkette Ziel enthält.
Symbolische Links werden zur Laufzeit so interpretiert, als wenn der neue Dateiname durch den alten ersetzt worden wäre. Dies gilt für Dateien und Verzeichnisse.
Symbolische Links können ..-Komponenten im Pfad beinhalten. Wenn die zwei Punkte den Anfang des Links bilden, werden sie als das Elternverzeichnis des Links interpretiert.
Ein symbolischer Link (auch »soft link« genannt) kann auf eine existierende oder eine nicht existierende Datei zeigen. Links auf nicht existierende Dateien werden als toter Link bezeichnet.
Die Rechte eines symbolischen Links sind irrelevant. Die Besitzverhältnisse werden bei der Auflösung des Links ignoriert (außer wenn das Funktionsmerkmal protected_symlinks aktiviert ist; siehe proc(5)). Sie werden überprüft, wenn der Link umbenannt oder gelöscht werden soll und sich in einem Verzeichnis mit gesetztem »Sticky Bit« (S_ISVTX) befindet.
Wenn Linkpfad existiert, wird es nicht überschrieben.
Der Systemaufruf symlinkat() funktioniert genauso wie symlink(), außer den hier beschriebenen Unterschieden.
Falls der in Linkpfad übergebene Pfadname relativ ist wird er als relativ zu dem im Dateideskriptor NeuVerzdd referenzierten Verzeichnis interpretiert (statt relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses, wie es bei symlink() für einen relativen Pfadnamen erfolgt).
Falls Linkpfad relativ ist und NeuVerzdd den besonderen Wert AT_FDCWD annimmt wird Linkpfad als relativ zum aktuellen Arbeitsverzeichnis des aufrufenden Prozesses interpretiert (wie symlink()).
Falls Linkpfad absolut ist wird NeuVerzdd ignoriert.
Lesen Sie openat(2) für eine Beschreibung der Notwendigkeit von symlinkat().
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
symlinkat() wurde zu Linux in Version 2.6.16 hinzugefügt; Bibliotheksunterstützung wurde zu Glibc in Version 2.4 hinzugefügt.
symlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
symlinkat(): POSIX.1-2008.
Ziel wird nicht geprüft.
Das Löschen des Ziels eines symbolischen Links löscht diese Datei (wenn sie keine weiteren harten Links hat). Wenn dieses Verhalten nicht erwünscht ist, verwenden Sie link(2).
Wenn in älteren Kerneln symlinkat() nicht verfügbar ist, weicht die Glibc-Wrapper-Funktion auf symlink() aus. Wenn Linkpfad relativ ist, konstruiert die Glibc einen Pfadnamen, der auf dem symbolischen Link in /proc/self/fd basiert, der dem NeuVerzdd-Argument entspricht.
ln(1), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2), path_resolution(7), symlink(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Elmar Jansen <ej@pumuckel.gun.de>, Martin Schulze <joey@infodrom.org>, Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Helge Kreutzmann <debian@helgefjell.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Dr. Tobias Quathamer <toddy@debian.org> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
5. Februar 2023 | Linux man-pages 6.03 |