[C/C++] detecter la modification d'un fichier

detecter la modification d'un fichier [C/C++] - Programmation

Marsh Posté le 05-06-2002 à 19:32:47    

voila , je doi recuperer les info qu'un programme autre que le mien met dans un fichier , et je me demande si il y a une fonction qui permet de le faire  
 
la , je verifie le fichier toute les 120s mais au bout d'un certaint moment , il corrompt les fichier ( je supose que les 2 appli accedent en meme temps) si quelqu'un a une solution ca serait cool
 
 
 
ps : desoler pour les fautes , le francais c pas mon fort :=)

Reply

Marsh Posté le 05-06-2002 à 19:32:47   

Reply

Marsh Posté le 05-06-2002 à 19:57:44    

Essaie de trouver un moyen d'obtenit la date de dernière modification apportée.

Reply

Marsh Posté le 05-06-2002 à 20:14:04    

hum vi pas con , mais ca me fais quand meme verifier a interval regulier le fichier , ce que je voudre c une fonction qui me renvoie un signal quand le fichier est modif ( un peu comme un timer quoi ...)

Reply

Marsh Posté le 05-06-2002 à 23:50:03    

Tu voudrais en fait que le fichier te signale un changement? Je crois pas que ce soit possible ça... Alors le seul moyen c'est de créer une fonction qui check le fichier à intervalle régulier, et donc là tu peux soit regarder le fichier en lui-même ou l'idée que j'ai proposé.

Reply

Marsh Posté le 06-06-2002 à 03:00:04    

ou tu peux utiliser l'algo de MD5 pour vérifier la validité de ton fichier source avec le fichier courant.

Reply

Marsh Posté le 06-06-2002 à 07:51:00    

Citation :

hum vi pas con , mais ca me fais quand meme verifier a interval regulier le fichier , ce que je voudre c une fonction qui me renvoie un signal quand le fichier est modif ( un peu comme un timer quoi ...)


Faudait que le systeme puisse de signaller cet evenement a du code qui aurait enregistré un callback...
Je pense pas que ce type de mecanisme soit implementé en général.
Mais sous Windows, ce type de notification est implementée au niveau du repertoire. Tu peux aller voir la doc de FindFirstChangeNotification, FindNextChangeNotification ici: http://msdn.microsoft.com/library/ [...] e_2a2b.asp
Sous Unix (ou Windows), tu peux aussi coder un petit programme qui:
1) checke ton fichier a intervalle regulier
2) detecte un changement (car la date de derniere modif a varié)  
3) decide apres un certain intervalle que le changement est terminé (car la date de derniere modif n'a pas varié depuis n secondes), et t'envoie un signal...
et ce genre de prog peut s'etendre en traitant une liste de fichiers au lieu d'un seul, et avec des commandes pour ajouter/supprimer un fichier de la liste des fichiers surveillés.
A+,


Message édité par gilou le 06-06-2002 à 07:57:49

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 06-06-2002 à 22:16:44    

hum merchi pour vos reponce , en faite , je verifie deja le fichier toutes les 120s car je suis sur qu'il est modifier , j'ai mit un piti compteur , le bug ce reproduit toutes les 3h20 pile poile ( ou a la 100 eme ouverture du fichier ) mon appli est en QT , mais meme avec les fonction de base le probleme reste le meme .... je sais franchement pas quoi faire , j'ai deja re-ecrit le truc plusieur fois si quelqu'un a deja eu le probleme ? et pourtant je ferme bien ce fichier .....
 
 
voila en + ce message servira de UP :=)

Reply

Marsh Posté le 07-06-2002 à 01:25:52    

Pour t'aider, faudrait qu'on voie la partie de ton code qui fait ce que tu expliques.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-06-2002 à 02:04:45    

et mettre en place un système de mutex ?

Reply

Marsh Posté le 07-06-2002 à 08:30:56    

A ta place je regarderai plutôt tu côté des sharedmemory


---------------
Le Tyran
Reply

Marsh Posté le 07-06-2002 à 08:30:56   

Reply

Marsh Posté le 07-06-2002 à 12:57:02    

hum merchi de vos reponce , mais je suis un peu con , en desespoire de cause j'ai laisse que c fonction , j'ai virer tout les autres truc pour mettre a jour mes label et tout et la miracle ca plante pu ....
en tout cas je vous remerci de vos reponce c sympa :=)
 
voila now ca va etre marrant pour resoudre le prob , 3h30 pour voire si la modif est bonne :=)
 
 
sur ce encore une fois merchi :=)

Reply

Marsh Posté le 09-06-2002 à 16:11:28    

letoII a écrit a écrit :

A ta place je regarderai plutôt tu côté des sharedmemory  




un système de sémaphore ? :)


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 09-06-2002 à 18:27:07    

Pourquoi n'ouvres tu pas ton fichier en acces exclusif? Et tu le refermes tout de suite apres?

Reply

Marsh Posté le 09-06-2002 à 19:53:55    

Sous quel systeme ? Si c'est sous Unix, tu as fam http://oss.sgi.com/projects/fam/index.html

Reply

Marsh Posté le 10-06-2002 à 01:24:49    

hum encore merchi pour l'url , j'ai resolu le bug , comme je le dit + haut defois j'ai du mal , en faite, c une de mes autres fonction que j'avais oublier qui "oublier" de fermer un fichier , j'ai honte de vous avoir deranger pour rien :=)
enifn des que j'ai finit le programme je vous met un post pour vous montrer ca , mais pour le  moment shuuuut :=)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed