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 :

Cherche une fonction standard.


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut Cherche une fonction standard.
    Bonjour a tous.

    Je vais faire plaisir a beaucoup de gens car mon probleme est ultra simple.
    Ce n'ai meme pas un probleme.

    Donc je cherche une fonction standard du C qui fait :

    - appel avec passage de la valeur temporelle (entiere en ms),
    - temporisation,
    - retour d'une valeur en fin de temporisation ou bien simplement echappement de la fonction pour continuer le deroulement du programme appelant.


    Si vous voulez plus de precisions, il faut demander et je PRECISE.

    Sivous connaissez une fonction du meme genre en C++, j'accepte le renseignement.

    Merci a tous pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    nanosleep?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    nanosleep

    Et quels sont les parametres a passer; leur type, ce qu'il se passe a la fin de la fonction.

    Dans quelle bibliotheque la trouve t'on?

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Roh tu connais pas Google, tu connais pas le man

    http://man.developpez.com

    http://man.developpez.com/man2/nanosleep.2.php

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 444
    Points
    3 444
    Par défaut
    Sans vouloir te vexer loin de moi cette idée ! Je ne suis point farceur. Mais ... As-tu essayé d'utiliser Google, et sa fonction "Rechercher" ? Si tu tapes "nanosleep" dans la case texte, ça mène vers pleins de réponses, c'est magique et c'est gratuit.

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Skyrunner
    nanosleep?
    C'est cru voir standard dans la question de saih_tam Certe nanosleep est standard mais POSIX pas C90

    Il faut utiliser clock si tu veux le temps en temps d'exécution du programme ou time pour le temps système :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <time.h>
     
    void sleep (int sec)
    {
      clock_t start, end;
     
      end = start = clock ();
      while ((end - start) / (float)CLOCKS_PER_SEC < sec)
      {
        end = clock ();
      }
    }
    Un p'tit test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <stdio.h>
     
    int main (void)
    {
      clock_t start, end;
     
      start = clock ();
      {
        sleep (2);
      }
      end = clock ();
      printf ("Temps en secondes : %f\n", (end - start) / (double)CLOCKS_PER_SEC);
      return 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Temps en secondes : 2.013000

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    gege2061:
    Il ne veut pas une fonction, pour connaitre le temps d'execution de son programme mais pour l'endormir.

    Apres il faut savoir ce qu'il entend pas standard, il veut qu'elle soit portable, elle est destiné à être utilisé sur quel plate-forme?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut plus de precision
    Donc je travaille sur le suivi automatique du soleil. j'ai une carte d'acquisition video en entree (image du soleil) et une carte de sortie digitale en sortie (commande des relais qui commandent des moteurs). Le probleme est que la carte de sortie n'a pas d'horloge et donc je dois decider du debut et de la fin de l'activation des moteurs dans le main()

    Imaginons que je suis dans le main() et que j'ai une correction a faire.

    DRV_WritePortByte(1000 0001);/*envoie le byte qui active les bons moteurs (2 au max)
    sleep(t) ou nanosleep(t) ou grossesieste(t); /*t est le temps d'activation choisi suivant le decalage calcule.
    DRV_WritePortByte(0000 0000);/*envoie le byte qui desactive tous les moteurs

    Suite du main().

  9. #9
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ok tu tournes sous quel systeme?

    Tu veux une resolution en ms c'est ca?
    Ton programme doit-il etre portable sur d'autre systeme?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par saih_tam
    Donc je cherche une fonction standard du C qui fait :
    - appel avec passage de la valeur temporelle (entiere en ms),
    - temporisation,
    - retour d'une valeur en fin de temporisation ou bien simplement echappement de la fonction pour continuer le deroulement du programme appelant.


    Si vous voulez plus de precisions, il faut demander et je PRECISE.

    Sivous connaissez une fonction du meme genre en C++, j'accepte le renseignement.

    Merci a tous pour votre aide.
    Rien de standard. J'ai fait msleep() (en ms) pour Linux et Windows :

    http://emmanuel-delahaye.developpez....p/inc/psleep.h

    qui répond aux 2 premiers critères.

    Mais il y a un problème pour le 3ème. Il faut une fonction de lecture du clavier non blocante comme le couple kbhit() / getch() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (kbhit())
    {
       c = getch();
       ...
    }
    Ces fonctions existent sous Windows (conio), et un portage a été fait pour Linux :

    http://c.developpez.com/faq/c/?page=...e_clavier_unix

    et la suite...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut suite des precision
    je ne sais pas ce que c'est ms.

    Sinon, je suis sous XP avec Visual C++ 6.0 (je ne sais pas m'en servir mais je suis obliger pour utiliser certaine bibliotheques). En gros, je ne fait que de la console.

    Je n'aurais pas besoin de deplacer quoi que ce soit ou que ce soit. L'ordinateur sur lequel je travaille est le futur ordinateur de suivi et donc si je peux le faire marcher dessus, plus de souci.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Nostalgie...
    Citation Envoyé par saih_tam
    Donc je travaille sur le suivi automatique du soleil.
    Souvenirs souvenirs... J'avais fait ça dans les années 1975 (ma grande époque écolo baba-cool) en 100% analogique avec une chambre noire[1], 4 photodiodes, des ampli-ops et 2 moteurs de Méccano ainsi que la mécanique (pas très précis le Mécanno... trop de jeu).

    C'etait pas très stable (contre-réaction un peu brutale, jeu de la mécanique). J'étais persuadé qu'à grande échelle, un tel système permettrait de construire des panneaux solaires à haut rendement.

    Problème, en cas de nuages de plus de quelques minutes, on a plus le spot dans le chambre noire et le système est perdu... Il aurait fallu faire un système pré-orientable par calcul (en analogique, je le sentais mal)... ou plusieurs chambre noires... compliqué... C'est resté au stade du prototype...

    ---------------
    [1] un simple tube métallique de diamètre 12 mm et d'une longueur de 35 mm peint à la bombe en noir mat et fermé par une très large rondelle de 3 mm collée à l'Araldite. Que de la récup...

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par saih_tam
    je ne sais pas ce que c'est ms.
    millisecondes

    C'est une unité de temps assez connue, non ?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Skyrunner
    Ok tu tournes sous quel systeme?
    Solaire (Solaris ?)


  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    Comment est-ce que j'utilise le truc mssleep en ms. Ca a l'air cool mais ca a une sale tete.

    Sinon, je suis en train de tester sleep() et je vous dis si ca me va.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    en fait milli seconde, je connais. Desole mais je suis novice et je pensais qu'il parlait de m... system ou une connerie dans le genre que je ne connaitrais pas.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par saih_tam
    Comment est-ce que j'utilise le truc mssleep en ms. Ca a l'air cool mais ca a une sale tete.
    Merci pour la sale tête...

    C'est super compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /* a recopier sur ton PC... 
       Indiquer au compilateur le chemin de psleep/ 
    */
    #include "psleep/inc/psleep.h"
     
    int main (void)
    {
      /* suspension de 100 ms */
       msleep(100);
     
       return 0;
    }

  18. #18
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 444
    Points
    3 444
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Souvenirs souvenirs... J'avais fait ça dans les années 1975 (ma grande époque écolo baba-cool) en 100% analogique avec une chambre noire[1], 4 photodiodes, des ampli-ops et 2 moteurs de Méccano ainsi que la mécanique (pas très précis le Mécanno... trop de jeu).

    C'etait pas très stable (contre-réaction un peu brutale, jeu de la mécanique). J'étais persuadé qu'à grande échelle, un tel système permettrait de construire des panneaux solaires à haut rendement.

    Problème, en cas de nuages de plus de quelques minutes, on a plus le spot dans le chambre noire et le système est perdu... Il aurait fallu faire un système pré-orientable par calcul (en analogique, je le sentais mal)... ou plusieurs chambre noires... compliqué... C'est resté au stade du prototype...

    ---------------
    [1] un simple tube métallique de diamètre 12 mm et d'une longueur de 35 mm peint à la bombe en noir mat et fermé par une très large rondelle de 3 mm collée à l'Araldite. Que de la récup...
    Pourquoi ne pas utiliser un immense panneau solaire sphérique, ainsi plus de problème d'orientation !



    Sinon, je suis peut-être encore resté baba-cool, car selon moi, la puissance du soleil est vraiment sous-exploitée, et on gagnerait énormément à investir dans l'énergie solaire

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 109
    Points : 63
    Points
    63
    Par défaut
    Bon, j'ai choppe directement le code en copier/coller et je me suis cree un psleep.h avec mon compilateur.

    Apres, j'ai fait tout ce que tu explique mais il ne reconnait pas mssleep (undeclared identifier) lors de la compilation.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par saih_tam
    Bon, j'ai choppe directement le code en copier/coller et je me suis cree un psleep.h avec mon compilateur.
    Comme tu veux.
    Apres, j'ai fait tout ce que tu explique mais il ne reconnait pas mssleep (undeclared identifier) lors de la compilation.
    Pour la 2ème fois, c'est pa mssleep(), mais msleep()

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. cherche une fonction system avec capture de la sortie
    Par ChipsterJulien dans le forum C++
    Réponses: 4
    Dernier message: 28/02/2008, 16h47
  2. Cherche une fonction
    Par even_s dans le forum C
    Réponses: 1
    Dernier message: 30/11/2007, 22h36
  3. Je cherche une fonction equivalente de "gtk_image_clear"
    Par majed_la7 dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 26/11/2007, 18h09
  4. Réponses: 1
    Dernier message: 16/06/2007, 21h44
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

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