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 :

Aide avec les fork()


Sujet :

C

  1. #41
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 528
    Points
    3 528
    Par défaut
    D'après : Lien

    — Data Type: struct timeval

    The struct timeval structure represents an elapsed time. It is declared in sys/time.h and has the following members:

    long int tv_sec
    This represents the number of whole seconds of elapsed time.
    long int tv_usec
    This is the rest of the elapsed time (a fraction of a second), represented as the number of microseconds. It is always less than one million.
    Moi je t'ai fais prendre le temps en seconde.
    Tu as donc le timestamp UNIX !
    Donc la logique sera la même qu'avec ton clock() : tu appelles 1 fois avant, 1 fois après, et tu affiches la différence !

  2. #42
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 64
    Points
    64
    Par défaut
    Toujours 0, ça doit venir de l'emplacement donc.

    Pourtant je les ai placé tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    struct timeval tv1,tv2;
      float t1, t2;
     
    while(1){
       //parsing
        gettimeofday(&tv1);
        t1 = tv1.tv_sec;
        int pid = fork();
     
        if(pid == 0){
          execvp(mots[0],mots);
     
          printf("Erreur : Commande non reconnue !\n");
          exit(EXIT_FAILURE);
     
          }
        else{
          wait();
          gettimeofday(&tv2);
          t2 = tv2.tv_sec;
     
          printf("\n Temps d'exécution : %f\n",(t2-t1));
        }

    EDIT : en fait cela vient de la précision de la fonction, car en faisant des printf je vois que t1 = t2, peut-être faut-il prendre les millisecondes au lieu des secondes

  3. #43
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 528
    Points
    3 528
    Par défaut
    Oui c'est possible...
    Le "ls -l" sera plutôt rapide...

    Essaye le usec pour voir ! (il y a pas mal d'exemples qui doivent trainer sur le net)

    Le mieux pour la précision : compter le tv.sec, écrire le nb de secondes, puis compter le usec, et écrire combien de microsecondes sont passées.
    Là tu auras quelque chose d'assez précis et complet.

  4. #44
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 64
    Points
    64
    Par défaut
    usec c'est bien une commande unix? Si oui, je ne trouve pas d'exemple et le man usec me renvoi rien ^^

    Edit : c'est bon j'ai compris, c'est une fonction du c, je croyais que tu me donnais une commande unix qui serait plus longue que le ls pour tester

  5. #45
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 528
    Points
    3 528
    Par défaut
    Pas une fonction C, un des membres de la structure !

    de tv.tv_usec

  6. #46
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 152
    Points : 64
    Points
    64
    Par défaut
    C'est bon j'ai enfin trouvé ^^ le problème venait du wait apparemment, j'ai mis alors waitpid() à la place.

    Encore merci de ta patience l'ami

    A bientôt (d'autres problèmes de c en perspective !! ^^)

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. besoin d'aide avec les session
    Par alain57 dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2006, 21h25
  2. Besoin d'aide avec les regxp
    Par vodevil dans le forum Langage
    Réponses: 1
    Dernier message: 04/04/2006, 13h28
  3. Besoin d'aide avec les fichier htaccess et htpasswd
    Par Polux000 dans le forum Apache
    Réponses: 2
    Dernier message: 26/01/2006, 01h05
  4. [vb excel]Aide avec les tableaux
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/09/2005, 13h07
  5. Réponses: 2
    Dernier message: 29/08/2003, 18h52

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