URL: https://linuxfr.org/forums/programmation-c--2/posts/retour-de-system-echo-inattendu Title: retour de system("echo $?"); inattendu Authors: roth Date: 2014年10月21日T08:29:59+02:00 License: CC By-SA Tags: Score: 1 Bonjour à tous, Je tente d'écrire un (N ième :-)) programme de recherche de mot de passe pour fichier .rar par force brute. Le principe est de tester un mot de passe et d'analyser le retour . Ainsi,si, dans une console , je rentre : ```Bash shell scripts moi@MonPc:~$ unrar e -y -p_mot.de.passe_ monFichier.rar ``` la fonction unrar se déroule normalement en confirmant selon le cas, que le mot de passe est correct ou non. Ensuite, la commande : ```Bash shell scripts moi@MonPc:~$echo $? ``` me retourne 0 si le mot de passe est bon ou 3 si le mot de passe est incorrect. Or, J'ai inclus ces deux commandes dans un programme C via la fonction system() mais l'effet n'est pas celui escompté . En effet, quelque soit le mot de passe - bon ou mauvais-, la fonction ```C system("echo $?"); ``` me retourne systématiquement et uniquement la valeur 0. Comme si cette fonction me retournait, non pas le code erreur de la fonction précédente mais le code de "bon déroulement" de celle-ci. ```C //code complet #include #include int main() { int CODE_RETOUR; system("unrar e -y -p13 /home/roth/Bureau/test.rar "); // e = test, y= oui a toutes les questions , -p13 = mot de passe :"13" CODE_RETOUR = (system("echo $?")); printf("code de retour = %i \n", CODE_RETOUR); return 0; } ``` Quelqu'un aurait-il une explication ou une piste, s.v.p. ? Roth

AltStyle によって変換されたページ (->オリジナル) /