J'ai développé un service Windows à l'aide de Visual C++ (mais codé en C).
Quand le service démarre il ouvre un fichier log comme ceci:
stream = freopen(nomfichier,"a+",stdout);
De cette façon mon flux de sortie est redirigé vers le fichier log grâce à la fonction fflush.
Quand mon service s'arrête il ferme mon fichier log : fclose(stream)
En gros ça donne ça:
Je souhaite que mon fichier log se fasse copier par un programme de copie. (Histoire de faire un backup). C'est un programme qui copie tout ce qu'il y a dans le répertoire. Je ne peux pas influer dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 .... //démarrage du service .... stream = freopen(nomfichier,"a+",stdout); printf("Connexion établie\n"); ... printf("titi\n"); ... fflush(stream); ... printf("toto\n"); ... fflush(stream); ... fclose(stream) //fin du service
Mon soucis c'est que quand l'utilitaire copie mon fichier log alors que mon service écrit dedans (au moment du fflush) mon service se plante.
Auriez vous une idée pour que je puisse tester si mon fichier est en train de se faire copier, ou bien un test pour savoir si je peux écrire dedans...
Merci
Partager