LINK

Section: Manuel du programmeur Linux (2)
Updated: 18 juillet 2003
Index


NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
CONFORMITÉ
BOGUES
VOIR AUSSI
TRADUCTION

NOM

link - Crée un nouveau nom pour un fichier.

SYNOPSIS

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

DESCRIPTION

link crée un nouveau lien (aussi appelé lien matériel ou hard link) sur un fichier existant.
Si newpath existe il ne sera pas ecrasé.
Ce nouveau nom pourra être utilisé exactement comme l'ancien quelque soit l'opération. Les deux noms se réfèrent au même fichier (et ont donc les mêmes permissions et propriétaire) et il est impossible de déterminer quel nom était l'original.

VALEUR RENVOYÉE

En cas de réussite 0 est renvoyé, en cas d'échec -1 est renvoyé, et errno contient le code d'erreur.

ERREURS

EXDEV
oldpath et newpath ne résident pas sur le même système de fichiers.
EPERM
Le système de fichier contenant oldpath et newpath ne permet pas la création de liens matériels.
EFAULT
oldpath ou newpath pointent en dehors de l'espace d'adressage accessible.
EACCES
L'écriture dans le répertoire contenant newpath n'est pas autorisé pour l'UID effectif du processus, ou l'un des répertoires de oldpath ou newpath ne permet pas le parcours (exécution).
ENAMETOOLONG
oldpath ou newpath sont trop longs.
ENOENT
Un répertoire contenu dans oldpath ou newpath n'existe pas, ou est un lien symbolique pointant nulle part.
ENOTDIR
Un élément du chemin d'accès oldpath ou newpath n'est pas réellement un répertoire.
ENOMEM
pas assez de mémoire pour le noyau
EROFS
Le fichier se trouve sur un système de fichier en lecture seule
EEXIST
newpath existe déjà.
EMLINK
Le fichier référencé par oldpath possède déjà le nombre maximal de liens.
ELOOP
oldpath ou newpath contiennent une référence circulaire (à travers un lien symbolique).
ENOSPC
Le support du système de fichier ne dispose pas d'assez de place pour un nouveau point d'entrée dans le répertoire.
EPERM
oldpath est un répertoire.
EIO
Une erreur d'entrée/sortie bas-niveau s'est produite.

NOTES

Les liens matériels créés par link, ne peuvent pas s'étendre sur plusieurs systèmes de fichiers. On peut utiliser plutôt symlink si ceci est nécessaire.

CONFORMITÉ

SVr4, SVID, POSIX, BSD 4.3, X/OPEN. SVr4 documente des conditions d'erreurs supplémentaires ENOLINK et EMULTIHOP. POSIX.1 ne décrit pas ELOOP. X/OPEN ne décrit pas les erreurs EFAULT, ENOMEM, ni EIO.

BOGUES

Sur les systèmes de fichiers NFS, le code de retour peut être faux, si le serveur NFS a créé correctement le lien mais s'est arrêté avant de donner le code de retour. Utiliser dans ce cas stat(2) pour vérifier si le lien a été effectivement créé

VOIR AUSSI

symlink(2), unlink(2), rename(2), open(2), stat(2), ln(1)

TRADUCTION

Christophe Blaess, 1996-2003.