[C++] Fonction time

Résolu
Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   -  
Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je souhaite créer 2 boucles tout à fait indépendantes.

- La première récupère l'heure système et toutes les 3 minutes effectue un traitement.

- La deuxième vérifie l'heure chaque minute et en fonction de l'heure (4 heures choisie), effectue un traitement

j'ai probablement mal cherché mais je n'ai pas trouvé réponse à mes questions...

Merci de m'aider
Configuration: Windows XP
Firefox 3.0.8

13 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut. Il faut faire des thread, avec dans chaque boucle des test sur le temps.
    Après, c'est quoi ton problème, les thread et la simultanéité des boucles ou la fonction lisant le temps ? voir http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man2/time.2.html pour cette dernière.
    1
    1. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
       
      J'ai compris quelle bibliothèque il faut utiliser. Mais je ne trouve pas quelle fonction il faut utiliser et comment l'utiliser
      0
  2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    int temps=time(); permet de récupérer l'heure courante.
    ensuite, il faut faire un tampon, tu stocke l'heure, et tu attends que le nombre de seconde écoulé soit au moins ce que tu veux, tu effectue la tâche et tu remet le compteur au temps courant (ou tu utlises un modulo).
    par exemple :
    if(!(time()%(3*60)))// traitement à effectuer toutes les 3 minutes.
    C'est un exemple peut tolérant aux arrets etc.
    t=time();
    While(1)
    if(time()-t>180)
    {
    t=time();
    //traitement
    }
    1
  3. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    en effet, si tu veux que les 2 boucles s'effectuent en parallèle, il faut faire des thread. (un par traitement + le thread principale (celui de ton main))

    l'autre solution, suivant le traitement que tu fais, tu peux très bien aussi faire tes 2 traitement dans la meme boucle, avec un IF qui va déterminer si tu dois effectuer le traitement 1, le 2 ou les 2.
    0
    1. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
       
      ce sont 2 traitements tout a fait indépendants mais utilisant tous les deux des fonctions de temps et récupérant tous les deux l'heure système, je vous pose la question pour les deux boucles en une seule fois...
      0
      1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228 > Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention  
         
        il faut choisir:
        - c'est tout a fait indépendant, ou
        - faire les 2 boucles en une seule fois (dans la meme boucle quoi)
        0
  4. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    indépendantes, l'une sera pour une régulation de température, l'autre pour une régulation de nourriture . . .
    donc ce sera sur 2 boutons différents avec multithreading
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    et c'est quoi qui pose problème?
    le multi threading? Le partage des ressources (important en multi threading), la pause de 1 ou 4 minutes?
    0
  7. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    ben je ne sais pas comment coder la boucle qui utiliserait une fonction de temps récupérant l'heure système je veux juste réussir à coder ces 2 boucles mais ne sait comment faire
    0
  8. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    c'est exactement ça l'idée merci beaucoup je vais maintenant étudier ta solution merci
    0
  9. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    " Int temps=time(); permet de récupérer l'heure courante. "

    ils me disent que time ne prend pas 0 arguments
    0
  10. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Si tu lit le lien que je t'ai donnée, c'est vrai.
    il suffit de faire time(0), et ça devrais fonctionner.
    0
  11. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    autant pour moi oui je l'ai lu :p merci
    0
  12. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    au risque de paraître très très nul , ce qui ne serait pas vraiment faux, ils me disent t undeclared identifier...
    j'ai d'abord remis "time_t time(time_t *t); " de ton lien, mais rien ne change... j'ai alors mis "time_t t;" est ce que cela est bon? ma boucle ne s'arrête pas après mais ça c'est à moi de voir je pense :D
    0
  13. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    met ton code, on y verra plus clair.
    Ne pas oublier de déclarer chaque variable avant son utilisation.
    0
  14. Doudou95 Messages postés 1897 Date d'inscription   Statut Membre Dernière intervention   275
     
    J'ai résolu depuis merci et désolé du retard
    0