Rechercher : dans
Par :

[C++] Fonction time

Dernière réponse le 9 jui 2009 à 11:15:27 Doudou95, le 27 avr 2009 à 09:28:51 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C++] Fonction time » dans :
Les fonctions en C++ : surcharge et paramètres par défaut. VoirLes fonctions en C++ : surcharge et paramètres par défaut. 1. La surcharge de fonctions et méthodes de classes, dont le constructeur 2. Utilisation des paramètres par défaut En C++, une même fonction ou méthode de classe peut être...
Les inlines en C++ VoirSignification Exemple 1 Inline et headers Exemple 2 Signification Le mot-clé inline est utilisé en C++ et s'applique à une fonction. Il indique au compilateur que chaque appel à la fonction inline devra être remplacé par le corps de cette...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Langage C - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
Langage C++ - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

Char Snipeur, le 27 avr 2009 à 09:33:09
  • +1

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. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

4

Doudou95, le 27 avr 2009 à 09:54:25

J'ai compris quelle bibliothèque il faut utiliser. Mais je ne trouve pas quelle fonction il faut utiliser et comment l'utiliser

Répondre à Doudou95

2

Nabla's, le 27 avr 2009 à 09:35:48

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.

Répondre à Nabla's

3

Doudou95, le 27 avr 2009 à 09:43:21

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...

Répondre à Doudou95

5

Nabla's, le 27 avr 2009 à 09:57:54

Il faut choisir:
- c'est tout a fait indépendant, ou
- faire les 2 boucles en une seule fois (dans la meme boucle quoi)

Répondre à Nabla's

6

Doudou95, le 27 avr 2009 à 10:18:44

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

Répondre à Doudou95

7

Nabla's, le 27 avr 2009 à 10:31:59

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?

Répondre à Nabla's

8

Doudou95, le 27 avr 2009 à 10:40:12

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

Répondre à Doudou95

9

Char Snipeur, le 27 avr 2009 à 10:41:00
  • +1

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
} Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur

Répondre à Char Snipeur

10

Doudou95, le 27 avr 2009 à 10:44:15

C'est exactement ça l'idée merci beaucoup je vais maintenant étudier ta solution merci

Répondre à Doudou95

11

Doudou95, le 27 avr 2009 à 11:27:16

" Int temps=time(); permet de récupérer l'heure courante. "

ils me disent que time ne prend pas 0 arguments

Répondre à Doudou95

12

Char Snipeur, le 27 avr 2009 à 14:17:48

Si tu lit le lien que je t'ai donnée, c'est vrai.
il suffit de faire time(0), et ça devrais fonctionner. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

13

Doudou95, le 28 avr 2009 à 09:23:55

Autant pour moi oui je l'ai lu :p merci

Répondre à Doudou95

14

Doudou95, le 28 avr 2009 à 09:34:11

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

Répondre à Doudou95

15

Char Snipeur, le 29 avr 2009 à 08:24:51

Met ton code, on y verra plus clair.
Ne pas oublier de déclarer chaque variable avant son utilisation. Salutation ! (il faut bien que vous compreniez que j'ai TOUJ­OURS raison)
Char Snipeur

Répondre à Char Snipeur

16

 Doudou95, le 9 jui 2009 à 11:15:27

J'ai résolu depuis merci et désolé du retard

Répondre à Doudou95
Collection CommentÇaMarche.net