IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Executer une fonction à une heure précise


Sujet :

C

  1. #1
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut Executer une fonction à une heure précise
    Bonjour,

    Je cherche un moyen simple de pouvoir exécuter une fonction à une heure (relativement) précise au sein d'un programme (écrit en C, tourne sur Linux).

    J'ai un programme qui tourne tout le temps :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while(1) {
    	// execute du code
    	usleep(100ms);
    }
    Et je voudrais qu'à une heure précise une fonction soit exécutée en plus de tout le code.

    Par exemple si l'heure courante est entre 01:00:00.000 et 01:00:00.100 (normalement ne peut se produire qu'une fois puisqu'on a un "pas" de 100ms minimum entre deux test) alors j’exécute ma fonction (sauf que c'est un peu lourd de recalculer tous les 100ms si on est entre les deux temps)

    J'ai trouvé cette méthode : https://stackoverflow.com/questions/...nux-c/49868560
    Mais il faudrait re-calculer chaque jour le TIMER_FREQUENCY suivant.. car la première fois que le programme est lancé n'est pas forcement 01:00:00.000.

    Auriez vous des idées de comment procéder ?

    Merci par avance pour votre aide

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Ce genre de manip devrait se faire via la crontab et pas un truc qui tourne en continu

    Si tu as déjà un truc qui tourne tout le temps, tu peux
    - récupérer l'heure actuelle
    - vérifier que l'heure est passée celle où l'action doit être exécutée
    - exécuter l'action et set l'heure suivante d'exécution de l'action

    - si le programme s'arrête, l'action sera toujours réalisée une fois au démarrage
    - pour contrer cet effet, il faudrait utiliser non pas une variable mais un fichier où sauvegarder la prochaine heure d'exécution
    > ça ne résoud pas tout mais amoindrie largement le problème
    - lire ce fichier au démarrage pour l'initialisation
    - réécrire ce fichier après exécution

    - sleep ne crée pas une attente précise
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Tiens une idée en passant , peut-être coder un client ntp qui demande à intervalles réguliers l'heure.

    Pour le serveur , c'est à toi de chercher et de savoir s'il doit être public ou privé : s'il y en existe 1 ou tu mets en place le tien.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Voir cette discussion récente qui abordait le même sujet...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    Citation Envoyé par Bousk Voir le message
    - récupérer l'heure actuelle
    - vérifier que l'heure est passée celle où l'action doit être exécutée
    - exécuter l'action et set l'heure suivante d'exécution de l'action
    - si le programme s'arrête, l'action sera toujours réalisée une fois au démarrage
    Perfect Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evénement à une heure précise
    Par Thiby dans le forum MFC
    Réponses: 8
    Dernier message: 23/05/2008, 11h26
  2. [PHP] Exécuter du code PHP à une heure précise
    Par Ice-tea dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2007, 22h46
  3. Réponses: 6
    Dernier message: 17/08/2006, 09h40
  4. Exécuter une action à une heure précise
    Par Rhadamanthe59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 09/02/2006, 23h12
  5. [PPC][C#] Reveiller un PPC à une heure précise
    Par aeled dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 27/12/2005, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo