Provided by: manpages-de-dev_4.15.0-9_all bug

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 NeuVerzdd, const char *Linkpfad);

   Mit Glibc erforderliche 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. 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 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 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)

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  5.13  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 ⟨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⟩.