[C++] Fonction time [Résolu/Fermé]

Signaler
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
-
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
-
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

13 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 213
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
J'ai compris quelle bibliothèque il faut utiliser. Mais je ne trouve pas quelle fonction il faut utiliser et comment l'utiliser
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 213
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
18143
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 029
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.
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
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...
Messages postés
18143
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 029 >
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019

il faut choisir:
- c'est tout a fait indépendant, ou
- faire les 2 boucles en une seule fois (dans la meme boucle quoi)
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
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
Messages postés
18143
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 029
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?
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
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
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
c'est exactement ça l'idée merci beaucoup je vais maintenant étudier ta solution merci
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
" Int temps=time(); permet de récupérer l'heure courante. "

ils me disent que time ne prend pas 0 arguments
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 213
Si tu lit le lien que je t'ai donnée, c'est vrai.
il suffit de faire time(0), et ça devrais fonctionner.
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
autant pour moi oui je l'ai lu :p merci
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
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
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 213
met ton code, on y verra plus clair.
Ne pas oublier de déclarer chaque variable avant son utilisation.
Messages postés
1561
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
30 avril 2019
258
J'ai résolu depuis merci et désolé du retard