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