Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1650 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problème avec un programme de sauvegarde périodique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème avec un programme de sauvegarde périodique

n°435679
kayl667
Posté le 22-06-2003 à 15:48:55  profilanswer
 

salut,
j'ai écrit un programme de sauvegarde périodique. Celui-ci doit lancer une sauvegarde tous les jours à la même heure. Il est possible de lancer une sauvegarde immédiate.
Le problème... la sauvegarde immédiate fonctionne parfaitement ; par contre, la sauvegarde programmée ne fonctionne pas lorsque le temps d'attente est important (de l'ordre de 12h), mais elle fonctionne si ce temps n'est pas très important. Le déclenchement de la sauvegarde se fait grâce au timer de QT.
Je ne comprend pas pourquoi la sauvegarde immédiate fonctionne et pas la sauvegarde programmée. Y a-t-il quelque chose de particulier à gérer lorsqu'un programme reste en fonctionnement longtemps ?
merci d'avance pour votre aide !
 
PS : en utilisant le débugger, je crois que le programme plante lorsqu'il commence à écrire sur le disque dur (création d'un répertoire ou d'un fichier).

mood
Publicité
Posté le 22-06-2003 à 15:48:55  profilanswer
 

n°438155
kayl667
Posté le 24-06-2003 à 15:49:59  profilanswer
 

Je n'ai toujours pas trouvé de solution... donc je vais essayer de feinter. Je vais, à partir du programme, le relancer et éteindre celui lancé précédemment. Mais comment dois-je faire ?
J'ai essayé avec un system("nom_de_mon_prog" ) maisje ne peux pas arrêter l'autre prog...
Vu la bourde que je suis en train de faire, je tiens à préciser que je débute en c/c++ !! ;)

n°438194
gatorette
Posté le 24-06-2003 à 16:09:28  profilanswer
 

Je ne sais pas trop ce que tu cherches à faire, mais si un programme doit être lancé de façon automatique avec un intervalle de temps relativement grand, je pense qu'il vaut mieux utiliser l'outil spécifique de ton OS (Cron pour Unix/Linux ou Planificateur de Tâches pour Windows).
 
Pour revenir à ton problème, es-tu sûr que le programme lance bien ta procédure de sauvegarde ? Le programme plante-t'il ou la sauvegarde n'est-elle tout simplement pas effectuée ? Essaie de transformer le temps à partir duquel ça plante en l'unité du timer et regarde si ce n'est pas une valeur particulière (> à 2^32 par exemple).


---------------
each day I don't die is cheating
n°439251
kayl667
Posté le 25-06-2003 à 16:16:34  profilanswer
 

Citation :

il vaut mieux utiliser l'outil spécifique de ton OS (Cron pour Unix/Linux ou Planificateur de Tâches pour Windows).

Je voudrais bien mais il faut que le programme soit toujours dans la barre des tâches ! De plus, je ne vois pas comment utiliser les outils des différents OS...
 

Citation :

es-tu sûr que le programme lance bien ta procédure de sauvegarde ? Le programme plante-t'il ou la sauvegarde n'est-elle tout simplement pas effectuée ?

Le constructeur de la classe sauvegarde passe (il initialise toutes les variables - surtout des char *) ; mais c'est lors de la méthode de sauvegarde que ça plante, dès que le programme essaie d'écrire sur le disque dur.
 

Citation :

Essaie de transformer le temps à partir duquel ça plante en l'unité du timer et regarde si ce n'est pas une valeur particulière (> à 2^32 par exemple).

J'ai pensé à faire ça, mais ce serait beaucoup trop long. En effet, si le déclenchement de la sauvegarde n'est pas trop espacé du lancement du programme, tout se passe bien !! A chaque fois que je lance le programme la veille de son éxécution, celui-ci plante.
 
Concrètement, il y a un timer qui se reproduit toutes les minutes, de façon à afficher le temps avant la prochaine sauvegarde et dès que ce temps passe à 0 alors la sauvegarde se lance.


Message édité par kayl667 le 25-06-2003 à 16:18:10
n°439296
pilou51
Posté le 25-06-2003 à 16:32:45  profilanswer
 

non mais sinon tu peux faire un soft de sauvegarde instantanée, que tu exécutes aux heures/jours voulus grâce au planificateur de tâches/cron.
 

Citation :

Je voudrais bien mais il faut que le programme soit toujours dans la barre des tâches ! De plus, je ne vois pas comment utiliser les outils des différents OS...


 
De cette manière le prog n'a pas à se trouver ds la barre des tâches (uniquement le planificateur des tâches, mais il est lancé par défaut), et l'utilisation en est on ne peut plus simple... ):

n°439302
gatorette
Posté le 25-06-2003 à 16:37:45  profilanswer
 

kayl667 a écrit :

Je voudrais bien mais il faut que le programme soit toujours dans la barre des tâches ! De plus, je ne vois pas comment utiliser les outils des différents OS...


C'est bizarre comme requête... En général, on s'arrange pour dissimuler ce genre d'applications !
 

kayl667 a écrit :

Le constructeur de la classe sauvegarde passe (il initialise toutes les variables - surtout des char *) ; mais c'est lors de la méthode de sauvegarde que ça plante, dès que le programme essaie d'écrire sur le disque dur.


Tu peux expliciter un peu plus le plantage ? Il t'est peut-être possible de faire un fichier log afin de cerner un peu mieux l'erreur.
 

kayl667 a écrit :

J'ai pensé à faire ça, mais ce serait beaucoup trop long. En effet, si le déclenchement de la sauvegarde n'est pas trop espacé du lancement du programme, tout se passe bien !! A chaque fois que je lance le programme la veille de son éxécution, celui-ci plante.
Concrètement, il y a un timer qui se reproduit toutes les minutes, de façon à afficher le temps avant la prochaine sauvegarde et dès que ce temps passe à 0 alors la sauvegarde se lance.


C'est sûr que c'est le type d'erreur qu'il n'est pas facile de debugger. C'est pourquoi il va falloir faire un log très précis (afin de cerner au mieux l'erreur).
Tu parles de "lancer le programme la veille de son éxecution", vérifie que ce ne soit pas un problème dû au passage à minuit (00:00:00).
En gros, il va te falloir analyser au mieux ton programme (en se concentrant surtout sur la différence timer court/timer long.


---------------
each day I don't die is cheating
n°439665
xWillow
Posté le 26-06-2003 à 00:20:37  profilanswer
 

tu as essayer avec un timer ?

n°439694
kayl667
Posté le 26-06-2003 à 01:04:31  profilanswer
 

Citation :

tu as essayer avec un timer ?

oui, avec celui de QT mais j'ai du mal gérer la mémoire...
Enfin, c'est bon je vais faire comme vous me l'avez proposé. Je vais voir avec les planificateurs de tâches de windows (at) et linux(cron). De cette manière, le soft sera mieu conçu et stable.
Merci beaucoup de votre aide ! :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problème avec un programme de sauvegarde périodique

 

Sujets relatifs
[BCB6] probleme de link[CSS] problème de padding et IE 5.5 de #&@{ç!!!!!
Probleme avec delphiprobleme de page de garde avec dream mx...
BASH problème de variablepetit problème avec une classe PHP
[VBA Excel] Problème insertion de formuleprobleme de newbie dreamweaver...
[C++] Probleme de link (STL et solaris)[ASP]Probléme de lecture seul pendant un update de base de données
Plus de sujets relatifs à : Problème avec un programme de sauvegarde périodique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR