Timer en C simple, portable sur Unix
Philippe49
Membre
J'ai besoin dans un programme C sans XCode, sans librairie complémentaire, de créer un timer. J'ai une première solution , mais qui ne me satisfait pas entièrement car je ne vois pas comment faire plusieurs timers avec ce principe :
Une autre solution serait de bricoler avec des pthread, et une boucle ...
Ne trouvant rien comme doc sur ce sujet, avez-vous une idée, une solution, une référence classique à ce sujet ?
setitimer( ITIMER_REAL , &timerInterval , NULL ); <br /> signal ( SIGALRM, timerFire );<br /> // avec éventuellement une boucle de répétitions dans la fonction timerFire<br />
Une autre solution serait de bricoler avec des pthread, et une boucle ...
Ne trouvant rien comme doc sur ce sujet, avez-vous une idée, une solution, une référence classique à ce sujet ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si cela intéresse un lecteur futur :
et les prototypes (perso, il faut les coder) :
Moi j'aurais en effet plus regardé du côté de alarm() mais en effet ça te limite à une seule alarme... Bon à savoir
Par contre, ce n'est pas du tout équivalent à un timer Cocoa qui est basé sur la boucle d'events (runloop), et qui fonctionne dans le thread principal...
CF est en C
C'est simplement une boucle de gestion d'événements comme on en voit avec pas mal de technologies comme SDL, OpenGL, ncurses, qt, wxwidgets etc.
Merci, cela confirme le modèle que j'avais en tête.
Damned, je suis fait !
Par contre, il me va falloir relire plusieurs fois pour voir comment on peut générer un "synchronous event" dans ces conditions. Je n'ose croire à un simple test sur le temps écoulé , et si on imagine un event auquel réagit la boucle d'événements, on ne fait que déplacer la question : qu'est-ce qui génère cet événement à une date donnée
Bon je plonge dans la lecture ...
D'ailleurs la doc met bien en garde :