symlink

SYMLINK(2)                  Linux-Programmierhandbuch                 SYMLINK(2)



BEZEICHNUNG
       symlink, symlinkat - erzeugt einen neuen Namen für eine Datei

ÜBERSICHT
       #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 newdirfd, const char *Linkpfad);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       symlink():
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
               || /* Glibc-Versionen <= 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 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. 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.

   symlinkat()
       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 newdirfd 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 newdirfd den besonderen Wert AT_FDCWD
       annimmt wird Linkpfad als relativ zum aktuellen Arbeitsverzeichnis des
       aufrufenden Prozesses interpretiert (wie symlink()).

       Falls Linkpfad absolut ist wird newdirfd ignoriert.

RÜCKGABEWERT
       Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1
       zurückgegeben und errno entsprechend gesetzt.

FEHLER
       EACCES Der Schreibzugriff auf das Verzeichnis, in dem Linkpfad angelegt
              werden soll, wurde verweigert oder eines der Verzeichnisse im
              Pfad-Präfix von Linkpfad erlaubt keine Suchaktionen. (Siehe auch
              path_resolution(7).)

       EDQUOT Das Ressourcenkontingent des Benutzers auf diesem Dateisystem ist
              ausgeschöpft. Die Ressourcen können Inodes oder Datenträgerblöcke
              sein, abhängig von der Implementation des Dateisystems.

       EEXIST Linkpfad ist schon vorhanden.

       EFAULT Ziel oder Linkpfad zeigt aus dem für Sie zugänglichen Adressraum
              heraus.

       EIO    Es ist ein E/A-Fehler (engl. I/O) aufgetreten.

       ELOOP  Bei der Auflösung 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.

       ENOMEM Es war nicht genügend Kernelspeicher verfügbar.

       ENOSPC Das Gerät, das die die Datei enthält, hat keinen Platz für einen
              neuen Verzeichniseintrag.

       ENOTDIR
              Eine als Verzeichnis verwendete Komponente von Linkpfad ist
              tatsächlich kein Verzeichnis.

       EPERM  Das Dateisystem, welches Linkpfad beherbergt, unterstützt das
              Erzeugen von symbolischen Links nicht.

       EROFS  Linkpfad befindet sich in einem schreibgeschützten Dateisystem.

       Die folgenden zusätzlichen Fehler können bei symlinkat() auftreten:

       EBADF  newdirfd ist kein zulässiger Dateideskriptor.

       ENOENT Der Linkpfad ist relativ und newdirfd bezieht sich auf ein
              Verzeichnis, das gelöscht wurde.

       ENOTDIR
              Der Linkpfad ist relativ und newdirfd ist ein Dateideskriptor, der
              sich auf eine Datei bezieht, die kein Verzeichnis sein darf.

VERSIONEN
       symlinkat() wurde zu Linux in Kernel 2.6.16 hinzugefügt;
       Bibliotheksunterstützung wurde zu Glibc in Version 2.4 hinzugefügt.

KONFORM ZU
       symlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

       symlinkat(): POSIX.1-2008.

ANMERKUNGEN
       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).

   Anmerkungen zur Glibc
       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 newdirfd-Argument entspricht.

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)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.08 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


ÜBERSETZUNG
       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 <debian-l10n-german@lists.debian.org>.



Linux                          15. September 2017                     SYMLINK(2)