Re: Comportement mystérieux d'un programme C sur Debian 7

Top Page

Reply to this message
Author: Jérémy Bobbio
Date:  
To: ML Guilde (guilde@guilde.asso.fr)
Subject: Re: Comportement mystérieux d'un programme C sur Debian 7
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
                                    `. `'` 
                                      `-