Re: Fichier immortel

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: Liste Guilde
Subject: Re: Fichier immortel
Le mercredi 22 septembre, Jean-Marc Coursimault a écrit :
> si j'ai bien compris, si un process Unix a ouvert un fichier, et que
> qqn le modifie, le pgm continue de voir l'ancienne version. Ou qqchose
> comme ça.


Non, dans ce cas il voit les modifications. En revanche, si quelqu'un
efface (unlink()e en fait) le fichier et recrée un autre de même nom,
alors le programme qui a ouvert l'ancien continue à voir l'ancien.

La différence entre modifier et recréer ne saute pas immédiatement aux
yeux. La commande « ls -i <fichier> » te donne le numéro de inode
associé au fichier. Celui numéro ne change pas quand on modifie un
fichier, mais il change en général quand on le recrée.

Exemple : lorsqu'on « modifie » un fichier avec vim, celui-ci est
effectivement modifié... ou alors recréé, suivant que l'option
writebackup est désactivée ou activée. Dans ce dernier cas, vim renomme
l'ancien fichier, un recrée un nouveau sous l'ancien nom, puis efface
l'ancien.

> Comment voir quel +@$*^ù de process a ouvert mon fichier ?


Dans /proc/*/fd ?

-- 
Edgar Bonet           Maison : 04 76 21 29 16    Bureau : 04 76 88 10 96
3 rue Jean Prévost    Mobile : 06 77 19 79 39    Fax    : 04 76 88 11 91
38000 Grenoble        guilde@???     www.edgar-bonet.org