Lister les traitements faits par un prog C++

happy_girl Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je travaille actuellement sur un outil de controles des programmes C++ et sql appellés par des fichiers .sh.
Je compte faire dans un premier une fonction qui me fait al liste des traitements reussis ou echoués d'un programme c++ par exemple mais je ne sais pas comment faire pratiquement.

Si quelqu'un d'autres idées ce serai tres gentil
merci

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
comment savoir si les traitements sont réussi ?
Que le programme soit écris en C++ ou autre ne change pas grand chose.
0
happy_girl Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   1
 
C'est exactement ça la question ^^
Ce que j'ai la tête c'est créer un fichier de traces où je mets après l'exécution de chaque fonction par exemple un message, mais c'est encore pas très clair comment faire ^^
si t'as d'autres idées je serais reconnaissante
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
La question à la question est très spécifique au programme que tu utilises, il est impossible de te donner une réponse générique.
C'est un peu comme si je te demandais de savoir si les ouvriers ont bien fait leur travail, sans que tu connaisses ni l'entreprise ni le travail à faire.
0
happy_girl Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   1
 
euuh, ben les programmes sur lesquels je travaille font des modifications sur la BDD, envoi d'emails, creer des fichiers de traces & compte rendu, fichier de reprise ...etc
donc ce que je cherche c comment je peux identifier les traitement qui se sont bien déroulés des autres echoués, par un simple message apres chaque fonction ou instruction ?! ou autres chose !!
Je sais pas si je suis plus clair là
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
As tu la maitrise des programme C++ ?
Si c'est le cas il suffit alors de gérer les retours erreurs. Sinon je ne vois pas comment faire. En fait, je comprend mal ta base de travail. Tu as des scripts sh et des programmes C++, de quoi t'occupes tu, sh ou C++ ?
gérer les erreurs C++ depuis le sh, c'est facile, c'est même le but. L'inverse par contre c'est plus coton.
0
happy_girl Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   1
 
Les programmes c++ s'executent en temp reel à l'aide d'un outil s'appelle TWS, le lancement du programme se fait en passant par un fichier .sh qui lui appel le prgramme c++. donc pratiquement je m'occupe des deux.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Si tu t'occupes des deux, c'est assez simple, un programme C++ qui ne rencontre pas d'erreur retourne 0. Il suffit de lui faire retourner un code erreur (entre 1 et 128 je crois) lorsqu'il rencontre une erreur, puis ensuite de faire une table code retourner <-> erreur. Il y a plusieurs façon de récupérer ce code d'erreur en sh, en particulier la variable $?
0
happy_girl Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   1
 
Je te remercie pr ton aide.
juste une derniere question (j'espere), les valeurs d'erreur entre 1 et 128 se sont des valeurs predifini, je vx dire est ce que chaque code signifie une erreur bien definie ou bien c'est juste un exemple, et c'est à moi de définir pr chaque erreur un code specifique et les gerer par la suite ?!
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
C'est à toi de faire la table d'erreur. Il y a peut être des tables prexistante, mais tu fait ce que tu veux.
En général ça se présente sous cette forme :
if(fail) exit(CODE_ERREUR);
Ensuite, tu traite ça très simplement en bash en testant, version bloquante :
if prog_CPP
then :
   echo le programme a effectuer ses taches
else
   echo erreur du programme code retour $?
fi
0
happy_girl Messages postés 111 Date d'inscription   Statut Membre Dernière intervention   1
 
ah d'accord là je vois mieux.
Je te remercie beaucoup c'est gentil :)
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
peut être utile : http://mywiki.wooledge.org/BashFAQ/002
ensuite, tu peux faire une fonction shell qui redirige les code retour dans un fichier :
controleRun 
{ 
     eval $*   
     a=$1
     echo $?>$a.txt 
}
que tu utilises alors ainsi :
controleRun prog Cpp et argument & 
var =$!
0