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