Provided by: manpages-de-dev_4.21.0-2_all bug

BEZEICHNUNG

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

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

Ü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 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 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.

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

RÜCKGABEWERT

       Bei Erfolg wird Null zurückgegeben. Bei einem  Fehler  wird  -1  zurückgegeben  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-Präfix von Linkpfad  erlaubt  keine
              Suchaktionen. (Siehe auch path_resolution(7).)

       EBADF  (symlinkat())   Der Linkfad ist relativ, aber NeuVerzdd ist weder AT_FDCWD noch ein
              gültiger Dateideskriptor.

       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.

       ENOENT (symlinkat())   Der  Linkpfad  ist  relativ  und  NeuVerzdd  bezieht  sich  auf ein
              Verzeichnis, das gelöscht wurde.

       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.

       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,  unterstützt  das  Erzeugen  von
              symbolischen Links nicht.

       EROFS  Linkpfad befindet sich in einem schreibgeschützten Dateisystem.

VERSIONEN

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

STANDARDS

       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 NeuVerzdd-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)

Ü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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.