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

C Discussion :

[time.h]... sleep()


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut [time.h]... sleep()
    Bonjour,
    dans l'exemple suivante qui est censé mesuré la différence entre deux temps donné.
    J'ai une erreur a la compilation dont je ne vois pas comment résoudre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int main() 
    {
        time_t t1, t2;
     
        t1 = time(NULL);
        sleep(2);       /* attente de 2 secondes */
    warning C4013: 'sleep' undefined; assuming extern returning int
    Puis quand je fais "build"
    error LNK2001: unresolved external symbol _sleep
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        t2 = time(NULL);
     
        printf("difference : %lf secondes\n", difftime(t2, t1) );
        return 0;
    }
    Si quelqu'un voit comment résoudre le probleme sur le sleep()?
    Merci
    A+ matt

  2. #2
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Tu as bien inclu la librairie time.h ???

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par niglo
    Tu as bien inclu la librairie time.h ???
    D'après la page man, http://man.developpez.com/man3/sleep.3.php

    c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #include <unistd.h>
    qu'il faut inclure...

    Jc

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    sleep marche sous les systéme unix/linux si tu es sous windows c'est Sleep avec un grand S
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    Oui j'avai bien inclue la librairie time.h cependant j'étais sous windows et utilisait sleep avai un s minuscule et fallait le mettre en majuscule comme cité auparavant!
    A+

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    j'ai été un peu vite! Je croyais que c'était résolu cependant plus de probleme a la compilation ni a l'éxecution mais le resultat du programme affiche toujours 0.00000 secondes d'écart entre les 2 temps alors qu'il devrait afficher 2secondes?!


    Pour ce qui est de la librairie j'ai éssayer de l'inclure cependant il me dit qu'il ne la trouve pas cela provient peut etre du faite que je suis sous windows et qu'elle est interne a linux?
    Quelqu'un voit d'ou cela peut venir ?
    A+

  7. #7
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par _matt_44
    j'ai été un peu vite! Je croyais que c'était résolu cependant plus de probleme a la compilation ni a l'éxecution mais le resultat du programme affiche toujours 0.00000 secondes d'écart entre les 2 temps alors qu'il devrait afficher 2secondes?!
    Je crois que sous windows le paramètre passé à Sleep() est en millisecondes !! Donc 2 secondes d'attente :
    Et sous windows, il faut ajouter la lib <windows.h>.

  8. #8
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    Si tu es sur windows, il faut
    #include <windows.h>

    et utiliser Sleep (avec majuscule)

    Mais attention!

    tu n'arriveras pas a faire un Sleep de 2 millisecondes.
    En effet, la resolution est de 10. (ou 15? je sais plus)
    donc si tu met Sleep(2) ou Sleep(3) par exemple, ça compile ça execute mais en vérité ça fait Sleep(10) ou Sleep(0) je sais plus non plus

    pour avoir la resolution de 1 millisec, il faut faire une petite modification avant. tout est expliqué
    ici:
    http://www.geisswerks.com/ryan/FAQS/timing.html

    (je te rassure, les modifs n'affectent QUE le programme en question et pas tout le système)

    EDIT: ah effectivement, si c'est 2 secondes que tu veux attendre, c'est intile de faire cette modif. la réponses précédante suffit

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 31
    Points
    31
    Par défaut
    OK merci de te reponse ca fonctionne bien pr le moment avec deux secondes mais comme c'etait un test il se peut que je soit amener a descendre en dessous de la seconde donc ton lien va me servir merci !
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise à jours label pour chronomètre après time.sleep()
    Par Mat08 dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 08/01/2015, 23h19
  2. time.sleep bloque le programme
    Par laloibibi dans le forum Général Python
    Réponses: 6
    Dernier message: 25/04/2014, 14h27
  3. Fonction time.clock et sleep
    Par edwardfils dans le forum Calcul scientifique
    Réponses: 6
    Dernier message: 28/02/2013, 16h24
  4. time sleep(-1) ?
    Par ____22 dans le forum Général Python
    Réponses: 5
    Dernier message: 30/11/2010, 14h45
  5. time.sleep() ne fonctionne pas comme souhaité
    Par Olivier_ dans le forum Général Python
    Réponses: 3
    Dernier message: 19/11/2005, 01h46

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