Appel système LINK

Kalha -  
 kalha -
Bonjour à tous !!

Alors voilà j'ai un petit problème avec la commande LINK. Voici ma question :

Lorsqu’on construit un lien physique à l’aide de l’appel système LINK et que les deux chemins d’accès fournis en paramètre n’accèdent pas au même système de fichier que se passe-t-il ? Comment réagir dans un programme C ?

J'espère que quelqu'un pourra m'aider ou me donner des pistes de recherches !

Merci d'avance !

Bonne journée,

Kalha ;o)

1 réponse

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Un lien dur ne se conçoit que sur un même système de fichiers:
    (qui supporte les liens bien sûr)
    johand@horus:~$ touch brol
    johand@horus:~$ ls -l brol
    -rw-r--r--  1 johand johand 0 Mar 17 16:50 brol
    johand@horus:~$ ln brol truc
    johand@horus:~$ ls -l brol truc
    -rw-r--r--  2 johand johand 0 Mar 17 16:50 brol
    -rw-r--r--  2 johand johand 0 Mar 17 16:50 truc
    johand@horus:~$ rm brol
    johand@horus:~$ ls -l truc
    -rw-r--r--  1 johand johand 0 Mar 17 16:50 truc
    johand@horus:~$ ln truc /mnt/hda4/divers/brol
    ln: creating hard link `/mnt/hda4/divers/brol' to `truc': Invalid cross-device link
    

    Regarde les codes d'erreur dans
    man 2 link
    non?

    Johan
    0
    1. kalha
       
      Merci beaucoup pour ta réponse Johan !

      Elle m'a beaucoup aidée ! Tu avais raison.

      J'étais passé à côté en consultant le man :
      Il n'est pas possible de créer un lien physique entre 2 système de fichiers différents. Une erreur est générée (EXDEV).
      Il faut alors plutôt créer un lien symbolique avec la commande symlink !

      Encore merci,

      Kalha :o)
      0