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 :

Sleep d'un programme en c inopinément


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Sleep d'un programme en c inopinément
    bonjour a tous,
    cela fait un moment que je ne passe plus par la.. bref je me trouve actuellement devant une chose totalement incongru et incompréhensible .voila l'histoire j'ai un programme qui se connecte a une BDD récupère des info et les remet dans une autre rien de sorcier jusqu'à la mai la chose qui m'est totalement inconnu c'est pourquoi dans cas ou je passe telle fichier au préalable cela passe et sans aucun souci et en lui passant un autre le programme ce met en "sleep" et ce toujours a la meme position ?? j'ai regarder bien sur ce qui pouvais pas jouer a cette position mais rien d'anormal c'est correcte!
    resulta du ps efx:
    4669 pts/0 S+ 0:00 \_ ./putcharge3 1311 administration TERM=xterm

    voici le code
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
     
    	   if (!clean)
    	  {
    		bd->execquery("delete from posfacture where expire < now()");
    		affrow=(int)bd->affected_rows(); 
    		std::cout<<"result du affectded row de posfacture :"<<affrow<<std::endl;
    		delai->raise_log(affrow);
    	 }
         if (diff<=0){
    		fprintf(stderr,"la facture de est trop ancienne : %d\n",REFMOIS);
     
    		}else{
     
    #define LGLINE 10240
          char line[LGLINE];
     
          char date[20];
          sprintf(date,"20%02d-%02d-01",REFMOIS/100,REFMOIS%100);
    	  std::cout<<">>>>>>>>>>>>>>>ICI 0"<<std::endl;
     
    /* Insertion de l'element dans la BD */
          char query[LGLINE];
     
    	   check=bd2->getRow(true,"select charge_type.str,charge_description.str,id_user,id_calling,id_groupe,prix from posfacture,charge_type,charge_description where source=\"%s\" and refmois=%d and id_charge_description=charge_description.id and id_charge_type=charge_type.id",TYPE,REFMOIS);
          // sprintf(query,"select charge_type.str,charge_description.str,id_user,id_calling,id_groupe,prix from posfacture,charge_type,charge_description where source=\"%s\" and refmois=%d and id_charge_description=charge_description.id and id_charge_type=charge_type.id",TYPE,REFMOIS);
    		// 
    	  std::cout<<">>>>>>>>>>>>>>>ICI 1"<<std::endl;
          // execquery(mysqldb,query);
          // ptres=mysql_use_result(&mysqldb);
    	  // (row=mysql_fetch_row(ptres))
    int lignedebug =0;
          while (check)
          {	
    		for (int i=0; i<6; i++)
    		{
    			store[i] =bd2->row(i);
    			//std::cout<<"valeur de store(i)"<<store[i]<<std::endl;
    		}
    		std::cout<<">>>>>>>>>>>>>>>ICI 2"<<std::endl;
             if (strcmp(store[0],"Call charges")==0) continue;
             if (strcmp(store[0],"Taxes d'appels")==0) continue;
     
             if (strcmp(store[0],"Discounts, credits or charges")==0) continue;
             if (strcmp(store[0],"Rabais, credits et debits")==0) continue;
     
             if (strcmp(store[0],"Ajustements")==0) continue;
     
             if ( (strcmp(store[0],"Single charges")==0) || 
                  (strcmp(store[0],"Recurring charges")==0) ||
                  (strcmp(store[0],"Frais mensuels")==0) || 
                  (strcmp(store[0],"Taxes periodiques")==0) ) continue;
     
     
     
                // unsigned long int id_description=bd2->getindex("description",store[1],bdescription);
    //bd2->execquery("insert into cdr(source,refmois,date,heure,duree,taille,sms,prix,id_pays_roaming,id_partner_roaming,id_destination,id_calling,id_called,id_description,id_groupe,id_rate,id_rate_description,id_user,charge) values(\"%s\",%d,\"%s\",\"00:00:00\",0,0,0,%s,1,1,1,%s,1,%lu,%s,1,1,%s,1)",TYPE,REFMOIS,date,store[5],store[3],id_description,store[4],store[2]);
                // sprintf(query,"insert into cdr(source,refmois,date,heure,duree,taille,sms,prix,id_pays_roaming,id_partner_roaming,id_destination,id_calling,id_called,id_description,id_groupe,id_rate,id_rate_description,id_user,charge) values(\"%s\",%d,\"%s\",\"00:00:00\",0,0,0,%s,1,1,1,%s,1,%lu,%s,1,1,%s,1)",TYPE,REFMOIS,date,row[5],row[3],id_description,row[4],row[2]);        
     
                lignedebug++;
    			check=bd2->getNext();
    			std::cout<<"lignedebug <<<<<<<<<<<<<<<<<<:"<<lignedebug<<std::endl;
    			std::cout<<"le pid est"<<pid<<std::endl;
    			// continue;
     
     
     
             fprintf(stderr,"Je ne sais pas quoi faire avec : %s\n",store[0]);
     
          }//while
    	  // bd->freeResult();
    	  std::cout<<">>>>>>>>>>>>>>>ICI7"<<std::endl;
    	}//endif
    	  delete bd;
    	  delete bd2;
    	  delete delai;
     
       }
    donc voila si une ame charitable a une piste je prend de suite

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Va savoir...

    Je ne vois ni lecture de fichier, ni fork, ni exec, ni system(), ni commentaire qui dirait "ca bloque à cette ligne", etc. Je ne sais même pas si c'est du POSIX ou du Windows.

    La seule piste que je peux proposer : utilise un debugger. C'est aussi fait pour ça (sur gdb, si tu es bloqué à un endroit, un Ctrl+C interromps le traitement en cours ce qui te laisse le loisir de regarder la backtrace ; un fonctionnement similaire est disponible avec le debugger de VC++).

    (et le code est quand même assez peu élégant ; pointeurs nus, mélange de sprintf/std::cout, utilisation de strcmp... Je n’appellerais pas ça du C++...)
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

Discussions similaires

  1. time.sleep bloque le programme
    Par laloibibi dans le forum Général Python
    Réponses: 6
    Dernier message: 25/04/2014, 14h27
  2. le sleep plante mon programme
    Par chrisgwet dans le forum Visual Studio
    Réponses: 2
    Dernier message: 21/09/2012, 10h34
  3. Sleep sans bloquer le programme Qt ?
    Par barbuslex dans le forum Qt
    Réponses: 13
    Dernier message: 08/12/2008, 10h11
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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