J'ai un script shell qui contient les lignes suivantes:Obtenir le code de sortie d'un script shell, dans un programme C
if [ $elof -eq 1 ];
then exit 3
else if [ $elof -lt 1 ];then
exit 4
else
exit 5
fi
fi
Dans mon programme C j'utilise popen
pour exécuter le script comme ceci:
char command[30];
char script[30];
scanf("%s", command);
strcpy(script, "./myscript.sh ");
strcat(script, command);
FILE * shell;
shell = popen(script, "r");
if(WEXITSTATUS(pclose(shell))==3) {
//code
}
else if(WEXITSTATUS(pclose(shell))==4){
//code
}
Maintenant, comment obtenir le code de sortie du script? J'ai essayé d'utiliser WEXITSTATUS
, mais il ne fonctionne pas:
WEXITSTATUS(pclose(shell))
Qu'est-ce que vous montrez ne donne pas assez de contexte. S'il vous plaît montrer un morceau de code complet avec la sortie attendue et réelle. – dbush
Afficher plus de votre code C ... btw, vous ne devez utiliser 'WEXITSTATUS()' que si WIFEXITED() 'évalue * true * –
J'ai modifié mon code C. –