Scroll to navigation

LINK(2) Linux-Programmierhandbuch LINK(2)

BEZEICHNUNG

link - einen neuen Link auf eine Datei erzeugen

ÜBERSICHT

#include <unistd.h>
 
int link(const char *alterpfad, const char *neuerpfad );

BESCHREIBUNG

link erzeugt einen neuen Link (auch bekannt als Hardlink) auf eine bestehende Datei.
 
Wenn neuerpfad existiert, wird er 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).)
EEXIST
neuerpfad ist bereits vorhanden.
EFAULT
alterpfad oder neuerpfad zeigt außerhalb Ihres Adressraums.
EIO
Es ist ein E/A-Fehler aufgetreten.
ELOOP
Es wurden beim Auflösen von alterpfad oder neuerpfad zu viele symbolische Links vorgefunden.
EMLINK
Die Datei, auf die alterpfad zeigt, hat schon die maximale Anzahl Links.
ENAMETOOLONG
alterpfad oder neuerpfad war zu lang.
ENOENT
Eine Verzeichniskomponente in alterpfad oder neuerpfad existiert nicht oder ist ein toter symbolischer Link.
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 Hardlinks.
EROFS
Die Datei befindet sich in 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

Hardlinks, 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 Link ist. Seit Kernel 2.0 tut Linux dies jedoch nicht: Wenn alterpfad ein symbolischer Link ist, dann wird neuerpfad als (Hard-) Link auf die gleiche symbolische Link-Datei erstellt (d.h. neuerpfad bekommt einen symbolischen Link 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 Link ist, oder nicht. Wenn Sie mehr über die präzise Steuerung der Behandlung symbolischer Links 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 Links abbricht. Prüfen Sie stat(2), ob der Link angelegt wurde.

SIEHE AUCH

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

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter 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> und Chris Leick <c.leick@vollbio.de> 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>.
21. August 2008 Linux