timers sous linux

timers sous linux - C++ - Programmation

Marsh Posté le 07-01-2003 à 16:20:09    


Je cherche comment on peut utiliser des timers sous linux ou y a des libs qui le font ?
 
merci

Reply

Marsh Posté le 07-01-2003 à 16:20:09   

Reply

Marsh Posté le 07-01-2003 à 16:36:18    

hellbilly a écrit :


Je cherche comment on peut utiliser des timers sous linux ou y a des libs qui le font ?
 
merci


T'as la fonction alarm() standard mais bordélique (envoie un signal, tu ne peut bien entendu définir qu'une seule alarme à la fois etc.), c'est archi-connu et ça doit être un truc standard UNIX.
Y'a sûrement des trucs plus fin (genre des libs qui wrappent ça ou des appels système plus fins).

Reply

Marsh Posté le 07-01-2003 à 16:41:21    

ca dépend de ce dans quoi tu veux l'utiliser masi par exemple, la SDL en offre

Reply

Marsh Posté le 07-01-2003 à 16:46:06    

farib a écrit :

ca dépend de ce dans quoi tu veux l'utiliser masi par exemple, la SDL en offre


 
et a part la sdl ?

Reply

Marsh Posté le 07-01-2003 à 17:31:37    

hellbilly a écrit :


 
et a part la sdl ?


 
man setitimer, mais attention la résolution est de 1/100s sur quasiment tous les unix

Reply

Marsh Posté le 07-01-2003 à 18:37:32    

Captain ad-hoc a écrit :


 
man setitimer, mais attention la résolution est de 1/100s sur quasiment tous les unix


 
Y'a nanosleep() dans posix, y'a pas d'autres fonctions qui utilisent la même infrastrucure (à la nanoseconde en théorie) dans UNIX ?

Reply

Marsh Posté le 08-01-2003 à 10:29:17    

Captain ad-hoc a écrit :


 
man setitimer, mais attention la résolution est de 1/100s sur quasiment tous les unix


 
d'apres ce que j'ai pu lire sur setitimer, c'est un signal qui est envoyé au processus mais il est impossible de différencier l'origine du signal. J'ai besoin d'utiliser plusieurs timers et de pouvoir les différencier.
Et puis apparemment linux ne possède pas de timer interne, mais doit quand bien y avoir un moyen ?

Reply

Marsh Posté le 08-01-2003 à 13:42:13    

hellbilly a écrit :


 
d'apres ce que j'ai pu lire sur setitimer, c'est un signal qui est envoyé au processus mais il est impossible de différencier l'origine du signal. J'ai besoin d'utiliser plusieurs timers et de pouvoir les différencier.
Et puis apparemment linux ne possède pas de timer interne, mais doit quand bien y avoir un moyen ?
 


Ben utilise des threads alors, à grand coups de nanosleep, mais faut pas espèrer (à moins d'avoir un noyau temps reel) un précision < à 1/100ème de seconde (enfin je pense, mais je suis pas catégorique là dessus..)
 
pour nraynaud : extrait du man nanosleep:
 The current implementation of nanosleep is based on the normal kernel  timer  mechanism,  which has  a  resolution  of  1/HZ s  (i.e, 10 ms on Linux/i386 and 1 ms on Linux/Alpha).  
 
donc c'est toujours le même problème: à moins de se faire un timer dans une boucle qui bouffe tout le cpu pendant x microsecondes, je vois pas de solution pour avoir une precision meilleure que 10ms

Reply

Marsh Posté le 08-01-2003 à 13:56:39    

Reply

Marsh Posté le 08-01-2003 à 14:44:17    


 
ok merci, je vais essayer de me debrouiller avec ca

Reply

Marsh Posté le 08-01-2003 à 14:44:17   

Reply

Marsh Posté le 08-01-2003 à 15:39:13    

Captain ad-hoc a écrit :


pour nraynaud : extrait du man nanosleep:
 The current implementation of nanosleep is based on the normal kernel  timer  mechanism,  which has  a  resolution  of  1/HZ s  (i.e, 10 ms on Linux/i386 and 1 ms on Linux/Alpha).  
 


 
Je vous ai enduit avec de l'erreur, désolé.

Reply

Marsh Posté le 08-01-2003 à 17:05:13    

hum y a aussi les timer en QT qui permette de faire des truc penard sans trop ce casse la q mais bon apres faut voir ce que tu dois faire

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed