Bonjour,

Je vous expose mon problème:
Sur un serveur sous Red Hat j'ai une application développé en c qui génère des fichiers sur un serveur sous windows XP via un montage samba.

Le montage est créé avec la commande suivantes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 mount -t cifs "\\\\192.168.45.65\\storage\\" -o 'user=myuser,password=mypassword,domain=workgroup' "/tmp/share/"
Tout fonctionne, les fichiers sont créés, je peux les traiter sous windows. Cependant lorsque je supprime le fichier en cours d'écriture à partir du serveur Windows, j'ai le comportement suivant :

- Coté Windows le fichier semble bien supprimé, il n'apparait plus dans l'explorateur (même après de multiple rafraichissement). Cependant l'espace disque diminue donc il y a toujours une écriture en cours.

- Coté Linux le fichier est toujours présent dans /tmp/share/ et sa taille continue d'augmenter. La commande ls -l /tmp/share/monfichier.log, me retourne bien la taille du fichier. La commande ls -l /tmp/share/ m'indique que le fichier a été supprimé.
[[ -e /tmp/share/monfichier.log ]] m'indique que le fichier existe.

Quelqu'un pourrait-il m'expliquer ce comportement?
Comment détecter la suppression du fichier à partir de l'appli qui le génère?
Je pensais tester la présence du fichier en analysant le retour de la commande ls -l /tmp/nepfmstorage/testucfgsup/ | grep monfichier.log.
Mais c'est un peu dégoutant.

Y a t'il une commande pour mettre à jour les descripteurs de fichiers?