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