LINK(2)

BEZEICHNUNG
link - erzeugt einen neuen Verweis auf eine Datei

ÜBERSICHT
#include <unistd.h>

int link(const char *alterpfad, const char *neuerpfad);

BESCHREIBUNG
link erzeugt einen neuen Verweis (auch bekannt als harter Verweis) auf eine bestehende Datei.

Wenn newpath existiert, wird es nicht überschrieben.

Dieser neue Name kann genauso wie der alte Name für alle Aktionen benutzt werden. Beide Namen zeigen auf die gleiche Datei (haben somit die gleichen Rechte und Eigentümer) und es ist unmöglich festzustellen, welcher Name das »Original« ist.

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

FEHLER

EACCES
    Es besteht kein Schreibzugriff auf das Verzeichnis, das neuerpfad enthält oder es besteht kein Suchzugriff für eines der Verzeichnisse im Pfad-Präfix von neuerpfad oder alterpfad. (Siehe auch path_resolution(7).)

EDQUOT
    Das Quota (Plattenkontingent) des Benutzers an Plattenblöcken auf dem Dateisystem ist erschöpft.

EEXIST
    newpath ist schon vorhanden.

EFAULT
    alterpfad oder neuerpfad 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 oldpath oder newpath wurden zu viele symbolische Links gefunden.

EMLINK
    Die Datei, auf die alterpfad zeigt, hat schon die maximale Anzahl Verweise.

ENAMETOOLONG
    oldpath oder newpath war zu lang.

ENOENT
    Eine Verzeichniskomponente in alterpfad oder neuerpfad existiert nicht oder ist ein toter symbolischer Verweis.

ENOMEM
    Es war nicht genügend Kernel-Speicher verfügbar.

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

ENOTDIR
    Eine Komponente, die in alterpfad oder neuerpfad als Verzeichnis benutzt wird, ist tatsächlich gar kein Verzeichnis.

EPERM
    alterpfad ist ein Verzeichnis.

EPERM
    Das Dateisystem, welches alterpfad und neuerpfad beinhaltet, unterstützt nicht das Erzeugen von harten Verweisen.

EPERM (seit Linux 3.6)
    Der Aufrufende hat nicht das Recht, einen harten Verweis auf diese Datei zu erstellen. (Lesen Sie die Beschreibung von /proc/sys/fs/protected_hardlink in proc(5).)

EROFS
    Die Datei befindet sich auf einem nur lesbaren Dateisystem.

EXDEV
    alterpfad und neuerpfad befinden sich nicht auf dem gleichen eingehängten Dateisystem. (Linux erlaubt es, ein Dateisystem an mehreren Punkten einzuhängen, aber link() funktioniert nicht über mehrere unterschiedliche Einhängepunkte hinweg, selbst wenn das gleiche Dateisystem an beiden eingehängt ist.)

KONFORM ZU
SVr4, 4.3BSD, POSIX.1-2001 (lesen Sie aber auch die ANMERKUNGEN)

ANMERKUNGEN
Harte Verweise, wie sie mit link() erstellt werden, können sich nicht über mehrere Dateisysteme erstrecken. Benutzen Sie symlink(2), falls nötig.

POSIX.1-2001 legt fest, dass link() alterpfad zurückverfolgen sollte, wenn es ein symbolischer Verweis ist. Seit Kernel 2.0 tut Linux dies jedoch nicht: Wenn alterpfad ein symbolischer Verweis ist, dann wird neuerpfad als (harter) Verweis auf die gleiche symbolische Verweisdatei erstellt (d.h. neuerpfad bekommt einen symbolischen Verweis auf die gleiche Datei, auf die sich alterpfad bezieht). Einige andere Implementierungen verhalten sich ebenso wie Linux. POSIX.1-2008 ändert die Spezifikation von link(), indem es sie von der Implementierung abhängig macht, egal ob alterpfad zurückverfolgt wird, wenn es ein symbolischer Verweis ist, oder nicht. Wenn Sie mehr über die präzise Steuerung der Behandlung symbolischer Verweise bei ihrer Erstellung erfahren möchten, lesen Sie linkat(2).

FEHLER
Auf NFS-Dateisystemen kann der Rückgabewert falsch sein, wenn der NFS-Server beim Erzeugen des Verweises abbricht. Prüfen Sie mit stat(2), ob der Verweis angelegt wurde.

SIEHE AUCH
ln(1), linkat(2), open(2), rename(2), stat(2), symlink(2), unlink(2), path_resolution(7), symlink(7)

KOLOPHON
This page is part of release 3.54 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://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>, Chris Leick <c.leick@vollbio.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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>.