symlink(2) System Calls Manual symlink(2) BEZEICHNUNG symlink, symlinkat - erzeugt einen neuen Namen fur eine Datei BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int symlink(const char *Ziel, const char *Linkpfad); #include /* Definition der AT_*-Konstanten */ #include int symlinkat(const char *Ziel, int NeuVerzdd, const char *Linkpfad); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): 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 BESCHREIBUNG symlink erzeugt einen symbolischen Link Linkpfad, der die Zeichenkette Ziel enthalt. Symbolische Links werden zur Laufzeit so interpretiert, als wenn der neue Dateiname durch den alten ersetzt worden ware. Dies gilt fur Dateien und Verzeichnisse. Symbolische Links konnen ..-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 Besitzverhaltnisse werden bei der Auflosung des Links ignoriert (ausser wenn das Funktionsmerkmal protected_symlinks aktiviert ist; siehe proc(5)). Sie werden uberpruft, wenn der Link umbenannt oder geloscht werden soll und sich in einem Verzeichnis mit gesetztem >>Sticky Bit<< (S_ISVTX) befindet. Wenn Linkpfad existiert, wird es nicht uberschrieben. symlinkat() Der Systemaufruf symlinkat() funktioniert genauso wie symlink(), ausser den hier beschriebenen Unterschieden. Falls der in Linkpfad ubergebene 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() fur 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) fur eine Beschreibung der Notwendigkeit von symlinkat(). RUCKGABEWERT Bei Erfolg wird Null zuruckgegeben. Bei einem Fehler wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EACCES Der Schreibzugriff auf das Verzeichnis, in dem Linkpfad angelegt werden soll, wurde verweigert oder eines der Verzeichnisse im Pfad-Prafix von Linkpfad erlaubt keine Suchaktionen. (Siehe auch path_resolution(7).) EBADF (symlinkat()) Der Linkfad ist relativ, aber NeuVerzdd ist weder AT_FDCWD noch ein gultiger Dateideskriptor. EDQUOT Das Ressourcenkontingent des Benutzers auf diesem Dateisystem ist ausgeschopft. Die Ressourcen konnen Inodes oder Datentragerblocke sein, abhangig von der Implementation des Dateisystems. EEXIST Linkpfad ist schon vorhanden. EFAULT Ziel oder Linkpfad zeigt aus dem fur Sie zuganglichen Adressraum heraus. EIO Es ist ein E/A-Fehler (engl. I/O) aufgetreten. ELOOP Bei der Auflosung von Linkpfad wurden zu viele symbolische Links gefunden. ENAMETOOLONG Ziel oder Linkpfad war zu lang. ENOENT Eine Komponente des Verzeichnisses Linkpfad existiert nicht oder ist ein toter Link oder Ziel oder Linkpfad ist die leere Zeichenkette. ENOENT (symlinkat()) Der Linkpfad ist relativ und NeuVerzdd bezieht sich auf ein Verzeichnis, das geloscht wurde. ENOMEM Es war nicht genugend Kernelspeicher verfugbar. ENOSPC Das Gerat, das die die Datei enthalt, hat keinen Platz fur einen neuen Verzeichniseintrag. ENOTDIR Eine als Verzeichnis verwendete Komponente von Linkpfad ist tatsachlich kein Verzeichnis. ENOTDIR (symlinkat()) Der Linkpfad ist relativ und NeuVerzdd ist ein Dateideskriptor, der sich auf eine Datei bezieht, die kein Verzeichnis sein darf. EPERM Das Dateisystem, welches Linkpfad beherbergt, unterstutzt das Erzeugen von symbolischen Links nicht. EROFS Linkpfad befindet sich in einem schreibgeschutzten Dateisystem. STANDARDS POSIX.1-2008. GESCHICHTE symlink() SVr4, 4.3BSD, POSIX.1-2001. symlinkat() POSIX.1-2008. Linux 2.6.16, Glibc 2.4. Anmerkungen zur Glibc Wenn in alteren Kerneln symlinkat() nicht verfugbar 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. ANMERKUNGEN Ziel wird nicht gepruft. Das Loschen des Ziels eines symbolischen Links loscht diese Datei (wenn sie keine weiteren harten Links hat). Wenn dieses Verhalten nicht erwunscht ist, verwenden Sie link(2). SIEHE AUCH ln(1), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2), path_resolution(7), symlink(7) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Elmar Jansen , Martin Schulze , Martin Eberhard Schauer , Helge Kreutzmann , Mario Blattermann und Dr. Tobias Quathamer erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 symlink(2)