dans un shell je lance un programme écrit en c++ :
./monprogramme
je voudrais récupérer la valeur passée dans le exit() au moment de la sortie du programme dans une variable du shell. par exemple le programme fait un exit(-6) et je voudrais retrouver -6 dans une variable pour faire un echo $monresult par exemple.
j'ai tenté avec $? mais je récupère toujours 0 quelque soit la valeur mise dans le exit() de mon programme ... :-(
help me
# Peux tu nous donner un exemple de code stp ?
Posté par totof2000 . Évalué à 9.
1/ le code faisant appel a Exit dans ton prog C++
2/ les commandes shell que tu passes pour récuperer ce code.
Note également que la variable $? est renseignée lors de chaque appel de commande ou de prog. J'ai pour habitude de faire des trucs du genre :
commande_shell param1 param2
RETOUR=$?
.....
echo $RETOUR
# Je penche pour une erreur humaine.
Posté par Ubiquite . Évalué à 2.
C'est bizarre, t'es sûr qu'il est executé ton exit() ?
# Chezmoiçamarche™
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 3.
% cat toto.cpp
#include
using namespace std;
int main (int argc, char *argv[]) {
int exitValue = 42;
cout << "exitValue : " << exitValue << endl;
exit(exitValue);
}
% g++ toto.cpp -o toto
% ./toto
exitValue : 42
% echo $?
42
%
[^] # Re: Chezmoiçamarche™
Posté par barmic . Évalué à -1.
./monprogramme ; echo $?
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# attention
Posté par gaaaaaAab . Évalué à 4.
Accessoirement, on ne peut pas renvoyer trop de status non plus.
En tout cas, chez moi :
$ cat main.c
#include <stdlib.h>
int main (int argc, char *argv[]) {
int exitValue = -1;
exit(exitValue);
}
$ gcc main.c; ./a.out; echo $?
255
autrement dit, mon shell récupère un unsigned byte.
# 0-255
Posté par Vincent . Évalué à 3.
Je lis ici ( http://www.faqs.org/docs/abs/HTML/exit-status.html ) par exemple :
Likewise, functions within a script and the script itself return an exit status. The last command executed in the function or script determines the exit status. Within a script, an exit nnn command may be used to deliver an nnn exit status to the shell (nnn must be a decimal number in the 0 - 255 range).
# ok c'est good
Posté par whitefox . Évalué à 2.
[^] # Re: ok c'est good
Posté par gaaaaaAab . Évalué à 3.
# Zsh est ton ami
Posté par barmic . Évalué à 1.
%(?.. [%?])
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.