Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ symlink(2) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cp(1)

lchown(2)

link(2)

lstat(2)

open(2)

readlink(2)

unlink(2)

unistd(4)

symlink(2)                                                       symlink(2)

NAME
     symlink - Symbolischen Link auf eine Datei erstellen

SYNTAX
     #include <unistd.h>

     int symlink(const char *name1, const char *name2);

BESCHREIBUNG
     symlink() erzeugt den symbolischen Link name2 auf die Datei name1.
     Beide Namen dürfen beliebige Pfadnamen sein, die beiden Dateien müssen
     sich nicht auf demselben Dateisystem befinden, und name1 muß nicht
     vorhanden sein.

     Die Datei, auf die der symbolische Link zeigt, wird verwendet, wenn
     mit dem Link eine open(2)-Operation durchgeführt wird. Ein stat(2) auf
     einen symbolischen Link liefert die verwiesene Datei, während ein
     lstat(2) Informationen über den Link selbst liefert. Dies kann zu
     unerwarteten Ergebnissen führen, wenn ein symbolischer Link auf ein
     Verzeichnis erzeugt wird. Um in Programmen diese ungewünschten Effekte
     zu reduzieren, kann der Aufruf readlink(2) verwendet werden, um den
     Inhalt eines symbolischen Links zu lesen.

FEHLER
     Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
     Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
     errno(5).

     Der symbolische Link wird nicht hergestellt, wenn wenigstens eine der
     folgenden Bedingungen erfüllt ist:

     EACCES        In dem Verzeichnis, in dem der symbolische Link erstellt
                   wird, wird die Schreiberlaubnis verweigert, oder eine
                   Komponente des Pfadpräfixes von name2 darf nicht durch-
                   sucht werden.

     EDQUOT        Das Verzeichnis, in dem sich der Eintrag für den neuen
                   symbolischen Link befinden soll, kann nicht erweitert
                   werden, da die maximale Anzahl der Plattenblöcke des
                   Benutzers für das Dateisystem überschritten wurde.

     EDQUOT        Der neue symbolische Link kann nicht erzeugt werden, da
                   die maximale Anzahl der Plattenblöcke des Benutzers für
                   das Dateisystem, welches den Link enthalten soll, über-
                   schritten wurde.

     EDQUOT        Die maximale Anzahl von I-Nodes des Benutzers auf dem
                   Dateisystem, auf dem die Datei erzeugt werden soll,
                   wurde überschritten.

     EEXIST        Die Datei, die durch name2 angegeben wurde, existiert
                   bereits.



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

symlink(2)                                                       symlink(2)

     EFAULT        name1 oder name2 weisen über den zugewiesenen Adreßraum
                   des Prozesses hinaus.

     EIO           Beim Lesen vom Dateisystem oder Schreiben auf dieses
                   trat ein Ein-/Ausgabefehler auf.

     ELOOP         Zu viele symbolische Links wurden beim Auflösen von
                   name2 gefunden.

     ENAMETOOLONG  Die Länge von name1 oder name2 überschreitet PATHMAX,
                   oder die Länge einer Komponente von name1 oder name2
                   überschreitet NAMEMAX.

     ENOENT        Eine Komponente des Pfadnamenpräfixes von name2 exi-
                   stiert nicht.

     ENOSPC        Das Verzeichnis, in dem der Eintrag für den neuen symbo-
                   lischen Link erzeugt werden soll, kann nicht erweitert
                   werden, da auf dem Dateisystem des Verzeichnisses kein
                   Speicherplatz mehr frei ist.

     ENOSPC        Der neue symbolische Link kann nicht erzeugt werden, da
                   kein Speicherplatz mehr auf dem Dateisystem verfügbar
                   ist, welches den Link enthalten soll.

     ENOSPC        Es gibt keine freien I-Nodes auf dem Dateisystem, auf
                   dem die Datei erzeugt werden soll.

     ENOSYS        Das Dateisystem unterstützt keine symbolischen Links.

     ENOTDIR       Eine Komponente des Pfadpräfixes von name2 ist kein Ver-
                   zeichnis.

     EROFS         Die Datei name2 würde sich auf einem schreibgeschützten
                   Dateisystem befinden.

     Die Funktion symlink() kann bei folgender Bedingung fehlschlagen:

     ENAMETOOLONG  Die Auflösung des Pfadnamens eines symbolischen Links
                   hat ein Zwischenergebnis erzeugt, dessen Länge PATHMAX
                   überschreitet.

ERGEBNIS
     Nach erfolgreicher Ausführung liefert symlink() den Wert 0 zurück;
     ansonsten wird -1 zurückgegeben und der Fehlercode in errno geschrie-
     ben.








Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

symlink(2)                                                       symlink(2)

ANWENDUNGSZWECK
     Wie auch bei einem Hard Link kann eine Datei bei einem symbolischen
     Link mehrere logische Namen haben. Das Vorhandensein eines Hard Links
     garantiert die Existenz der Datei, auch wenn der Originaldateiname
     gelöscht wurde. Bei einem symbolischen Link ist eine solche Garantie
     nicht gegeben. Die durch das Argument name1 angegebene Datei muß nicht
     einmal vorhanden sein, wenn der Link erstellt wird. Ein symbolischer
     Link kann dateisystemübergreifend sein.

     Für jede Komponente des Pfadnamens für den symbolischen Link werden
     während der Auflösung die normalen Überprüfungen der Zugriffsrechte
     durchgeführt.

SIEHE AUCH
     cp(1), lchown(2), link(2), lstat(2), open(2), readlink(2), unlink(2),
     unistd(4).






































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026