Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3127 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Select et timer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Select et timer

n°743704
Bobarctor
Posté le 28-05-2004 à 16:04:28  profilanswer
 

Bonjour,
 
J'utilise pour une appli la fonction select() avec un systeme de timer.
J'aimerais pouvoir connaitre, quand j'ai un FD qui se reveille, le nombre de milliseconde qui reste dans mon timeout...
 
Est ce possible en utilisant la meme structure timeval que j'ai utilisee dans le select sans avoir a rajouter un autre compteur avec un gettimeofday ?
 
Merci de vos reponses.

mood
Publicité
Posté le 28-05-2004 à 16:04:28  profilanswer
 

n°743858
torpe23
Posté le 28-05-2004 à 16:57:15  profilanswer
 

Extrait du man:
 

Code :
  1. The  select  function may update the timeout parameter to indicate how much time was left.

n°743874
Bobarctor
Posté le 28-05-2004 à 17:06:10  profilanswer
 

hum, moi j'ai ca dans mon manuel:
 

Citation :

select() should probably return the time remaining from the original timeout, if any, by modifying the time value in place.  This may be im-plemented in future versions of the system.  Thus, it is unwise to assume that the timeout value will be unmodified by the select() call.


 
va comprendre charles :)
je me demandais justement pourquoi ca marchait pas...
je fais un truc comme ca:
 
 

Citation :

struct timeval    tv;
tv.tv_sec = 10;
...
select(maxfd + 1, &fds_r, (fd_set *) 0, (fd_set *) 0, &tv)
...


 
mais ma valeur tv_sec ne se decremente pas...


Message édité par Bobarctor le 28-05-2004 à 17:07:13
n°743898
Bobarctor
Posté le 28-05-2004 à 17:15:20  profilanswer
 

bon donc c'est bien ce que je pensais c'est pas portable autre que sous linux (je suis sur BSD).
 
Quelqu'un a une idee de methode propre pour faire ca avant que je reecrive select() ?
 
:)

n°744069
torpe23
Posté le 28-05-2004 à 19:51:33  profilanswer
 

C'est con ça paske je viens d'essayer et ça marche très bien sous linux! Désolé...  
De toutes façons, le man déconseille d'utiliser le timeout:

Code :
  1. Consider timeout to be undefined after select returns


 
Je crois que je t'ai trouvé une source de select: http://www.bgnett.no/~giva/watt-doc/a01694.html
 
Mais je te conseillerais plutôt de faire la solution que tu proposais au départ (un gettimofday).


Message édité par torpe23 le 28-05-2004 à 19:59:27
n°744684
Deaddy
Posté le 29-05-2004 à 15:27:50  profilanswer
 

etrange en effet, et la valeur de tv_usec?

n°750928
Bobarctor
Posté le 03-06-2004 à 15:29:18  profilanswer
 

bon en fait je l'ai reecrit avec un gettimeofday, ca marche bien


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Select et timer

 

Sujets relatifs
timercomment utilise t'on un timer style chrono pour un tps d'arrêt
[Java] question sur le Timer de javax.swing[ HTML] - afficher date du jour dans menu de type "select"
demande d'info sur <html:select .....Probleme de select()
mise en oeuvre d'un timerNombre de ligne d'une requète Select en ODBC
Probleme avec un select[SQL] Comment modifier les données d'un SELECT ???
Plus de sujets relatifs à : [C] Select et timer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR