LINK(2)

NOM
link - Cree un nouveau nom pour un fichier.

SYNOPSIS
#include <unistd.h>

int link (const char *oldpath, const char *newpath);

DESCRIPTION
link cree un nouveau lien (aussi appele lien materiel ou hard link) sur un fichier existant. Si newpath existe il ne sera pas ecrase. Ce nouveau nom pourra etre utilise exactement comme l'ancien quelque soit l'operation. Les deux noms se referent au meme fichier (et ont donc les memes permissions et proprietaire) et il est impossible de determiner quel nom etait l'original.

VALEUR RENVOYEE
En cas de reussite 0 est renvoye, en cas d'echec -1 est renvoye, et errno contient le code d'erreur.

ERREURS

EXDEV
    oldpath et newpath ne resident pas sur le meme systeme de fichiers.

EPERM
    Le systeme de fichier contenant oldpath et newpath ne permet pas la creation de liens materiels.

EFAULT
    oldpath ou newpath pointent en dehors de l'espace d'adressage accessible.

EACCES
    L'ecriture dans le repertoire contenant newpath n'est pas autorise pour l'UID effectif du processus, ou l'un des repertoires de oldpath ou newpath ne permet pas le parcours (execution).

ENAMETOOLONG
    oldpath ou newpath sont trop longs.

ENOENT
    Un repertoire contenu dans oldpath ou newpath n'existe pas, ou est un lien symbolique pointant nulle part.

ENOTDIR
    Un element du chemin d'acces oldpath ou newpath n'est pas reellement un repertoire.

ENOMEM
    pas assez de memoire pour le noyau

EROFS
    Le fichier se trouve sur un systeme de fichier en lecture seule

EEXIST
    newpath existe deja.

EMLINK
    Le fichier reference par oldpath possede deja le nombre maximal de liens.

ELOOP
    oldpath ou newpath contiennent une reference circlaire (a travers un lien symbolique).

ENOSPC
    Le support du systeme de fichier ne dispose pas d'assez de place pour un nouveau point d'entree dans le repertoire.

EPERM
    oldpath est le point d'entree . ou .. d'un repertoire.

NOTES
Les liens materiels crees par link, ne peuvent pas s'etendre sur plusieurs systemes de fichiers. On peut utiliser plutot symlink si ceci est necessaire.

CONFORMITE
SVr4, SVID, POSIX, BSD 4.3. SVr4 documente des conditions d'erreurs supplementaires ENOLINK et EMULTIHOP. POSIX.1 ne decrit pas ELOOP.

BUGS
Sur les systemes de fichier NFS, le code de retour peut etre faux, si le serveur NFS a cree correctement le lien mais s'est arrete avant de donner le code de retour. Utiliser dans ce cas stat(2) pour verifier si le lien a ete effectivement cree

VOIR AUSSI
symlink(2), unlink(2), rename(2), open(2), stat(2), ln(1), link(8).