IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

POSIX C Discussion :

Format timeval gettimeofday()


Sujet :

POSIX C

  1. #1
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut Format timeval gettimeofday()
    Bonsoir, je souhaterais savoir si il y avait un code format particulier pour afficher les champs sec et usec d'une structure timeval.
    Comme ils sont sensés être de type entier je les affiche en tant que tels.
    Mais obtenant des resultat un peu fantaisistes (surtout pour les secondes, les usec difficiles à verifier) j'ai pensé qu'ils avaient peut être un code de format particulier.
    Au fait j'ai oublié de dire que je cherche à calculer le temps d'execution d'une fonction en faisant gettimeofday avant et apres puis en regardant la differance.
    Voilà, merci de votre aide.

  2. #2
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    En fait, j'avais mal placé mon premier gettimeofday(), mais reste encore un probleme.
    J'obtiens le bon temps de transfert en second, mais pas en usec.
    Exemple : j'obtiens que 12second = 4379microsecond.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    utilise ma fonction GetClock dans les sources (fonctions de date, la dernière de la page)

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Il faudrait que tu nous montres ton calcul, pour vérifier qu'il n'y a pas d'erreurs.

    J'ai utilisé gettimeofday() et clock_gettime() (utilisé dans la fonction getclok() que te présente notre collègue) ici pour mesurer un sommeil : http://www.developpez.net/forums/d65...-gettimeofday/

    Avec gettimeofday() tu n'as pas besoin de compiler avec la librt, mais clock_gettime() est compatible POSIX donc si tu souhaites porter ton soft préfères cette solution .... (bien que les OS Unix-like POSIX prévoit une compatibilité avec les Unix donc...)

    Quand à la précision sur une machine x86/linux, c'est pareil !
    Le test que j'ai fait peut être développé avec un calcul sur un grand nombre d'échantillons mais sur ceux que j'ai fait j'avais des écarts de 0,... %

    PS : pourquoi ce sujet est déplacé dans POSIX, on souhaite utilise gettimeofday() ici qui lui n'est justement pas compatible. Sa place est plutôt dans Linux/unix

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par bizulk Voir le message
    PS : pourquoi ce sujet est déplacé dans POSIX, on souhaite utilise gettimeofday() ici qui lui n'est justement pas compatible. Sa place est plutôt dans Linux/unix
    Cette fonction est tout ce qu'il y a de POSIX.1 :

    http://www.opengroup.org/onlinepubs/...timeofday.html

    Dans le doute, vérifier...

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Je vérifie ton lien ... 'issue 6' dit que cette fonction est compatible ISO C99 http://en.wikipedia.org/wiki/C99

    Le man page que je connais http://www.linux-kheops.com/doc/man/...meofday.2.htmldit :
    SVr4, BSD 4.3

    Dans ce lien tu verras qu'il y a bien une distinction entre C99 et POSIX.1 :
    http://www.eyrolles.com/Informatique...-9782100490189

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par bizulk Voir le message
    Je vérifie ton lien ... 'issue 6' dit que cette fonction est compatible ISO C99
    Eh ? Oui, la dernière version de POSIX.1 s'appuie sur C99, d'où la mise en conformité de l'interface avec 'restrict'. Quel est le problème ?

    Le man page que je connais http://www.linux-kheops.com/doc/man/...meofday.2.htmldit :
    SVr4, BSD 4.3
    Et bien elle n'est pas à jour (0.9, hum... pas officielle...).

    Dans ce lien tu verras qu'il y a bien une distinction entre C99 et POSIX.1 :
    http://www.eyrolles.com/Informatique...-9782100490189
    Une distinction, certes, mais la version actuelle de POSIX.1 englobe tout ce qu'elle peut de C99. Je ne vois pas en quoi ça ferait que cette fonction, qui est décrite dans un document officiel de POSIX.1 ne serait pas POSIX.1. Tu te crois plus savant que les gens qui ont écrit POSIX.1 ?

  8. #8
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Une distinction, certes, mais la version actuelle de POSIX.1 englobe tout ce qu'elle peut de C99. Je ne vois pas en quoi ça ferait que cette fonction, qui est décrite dans un document officiel de POSIX.1 ne serait pas POSIX.1. Tu te crois plus savant que les gens qui ont écrit POSIX.1 ?
    Mais qui peut le plus peut le moins mais pas le contraire. Ce n'est pas parce qu'un système est strictement conforme à POSIX.1 qu'il supportera gettimeofday().
    En effet gettimeofday() est bien décrit (par ton lien qui est effectivement plus a jour) comme faisant partit de l'extension XSI.
    Or le support de l'interface XSI dépend du système (dons les conditions sont définis dans "2.1.4 XSI Conformance"),
    Et un système qui est conforme POSIX.1 + XSI est susV3 (http://linux.die.net/man/7/standards).

    Donc pour un code portable (ce que je voulais dire au départ) il vaut mieux éviter d'utiliser cette fonction. Qnx décrit par exemple cette fonction comme étant obsolète.

    Et j'ajoute aussi que je ne prétends pas en savoir plus que les autres ni même tout comprendre. Je ne t'ai pas craché à la figure, au contraire j'ai pris tes réponses très au sérieux et grâce à toi j'ai appris autre chose.

  9. #9
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par bizulk Voir le message
    Mais qui peut le plus peut le moins mais pas le contraire. Ce n'est pas parce qu'un système est strictement conforme à POSIX.1 qu'il supportera gettimeofday().
    En effet gettimeofday() est bien décrit (par ton lien qui est effectivement plus a jour) comme faisant partit de l'extension XSI.
    Or le support de l'interface XSI dépend du système (dons les conditions sont définis dans "2.1.4 XSI Conformance"),
    Et un système qui est conforme POSIX.1 + XSI est susV3 (http://linux.die.net/man/7/standards).

    Donc pour un code portable (ce que je voulais dire au départ) il vaut mieux éviter d'utiliser cette fonction. Qnx décrit par exemple cette fonction comme étant obsolète.

    Et j'ajoute aussi que je ne prétends pas en savoir plus que les autres ni même tout comprendre. Je ne t'ai pas craché à la figure, au contraire j'ai pris tes réponses très au sérieux et grâce à toi j'ai appris autre chose.
    Il y a eu réunification des 2 standards (POSIX et XOPEN) en un seul SUSv3, donc on désigne aujourd'hui aussi bien la même chose en disant POSIX ou SUSv3. La fonction est bien à sa place.

  10. #10
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    J'ajouterai que je déconseille l'utilisation des manpages, je conseille plutôt d'utiliser la norme directement dans le lien donné par Emmanuel ou via le pdf.

  11. #11
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Bon j'allais l'ajouter pour corriger ma réponse (le sujet est bien a sa place)

Discussions similaires

  1. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00
  2. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34
  3. Format d'un exe pour DOS et pour Windows
    Par Alfhiger dans le forum Assembleur
    Réponses: 4
    Dernier message: 12/06/2002, 11h57
  4. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11
  5. Réponses: 3
    Dernier message: 06/05/2002, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo