BOITEUX, Frederic:
> sur un serveur en Debian 7 (7.9), une application écrite en C/C++
> effectue [entre autres] toutes les 20 secondes une mise à jour d'un
> gros fichier (~ 30 Mo) en écrivant des données dans un fichier
> temporaire, avant de supprimer le fichier nominal pour le remplacer
> par ce fichier temporaire par des unlink() / link().
Je suis confus. Pourquoi ne pas utiliser rename(2)? J'ai justement le
seul appel système qui garantie qu'on peut remplacer un fichier par une
nouvelle version de manière atomique.
> On obtient des traces du genre :
>
> 15:13:04.349 =>ma_pub_sauve() : fwrite() done st=1, errno=4
> 15:13:04.360 =>ma_pub_sauve() : fclosed done status=0 errno=4
> 15:13:04.360 write file tmp file not found '/appli/ datas.d/mlp01/mlp01.tmp'
^
Il est normal l'espace, là ?
(Si c'est un vrai répertoire que quelqu'un·e a nommé '\x20datas.d', je
suggère d'expliquer à cette personne que ce genre de blagues ne fait
rire personne.)
--
Lunar .''`.
lunar@??? : :Ⓐ : # apt-get install anarchism
`. `'`
`-