Bonjour,
Je voudrais pouvoir récupérer en C (et pas autrement) la variable windows %errorlevel% suite à l'utilisation de system() qui execute un .exe.
Merci d'avance pour vos luminaires
Bonjour,
Je voudrais pouvoir récupérer en C (et pas autrement) la variable windows %errorlevel% suite à l'utilisation de system() qui execute un .exe.
Merci d'avance pour vos luminaires
Bonjour,
Pour récupérer la variable %errorlevel%, tu peux faire un fork, rediriger la sortie standard ou la sortie d'erreur sur l'entrée d'un , faire un execlp puis écrire la valeur de %errorlevel% sur la sortie standard ou la sortie d'erreur.
Sinon tu peux écrire %errorlevel% dans un fichier puis le lire ensuite lorsque l’exécution de ton .exe est fini.
Salut,
Je suis sous windows. Fork c'est pour linux ?
Sous windows, j'ai bien tenté de faire un system("echo %errorlevel% > c:\err.txt");
Il me retourne sans cesse 0. Je suppose que ce n'est pas l'errorlvl du même processus qui lance le system(command); dont je souhaite récupérer le code d"erreur.
Cordialement.
Si je ne dis pas de bêtises, %errorlevel% est la variable qui reçoit le code de retour de la commande qui se termine, à l'intention d'un script batch. Or, « system » est en principe faite pour renvoyer ce code de retour (ou -1 en cas d'échec). Donc, tu écris :
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int x; x = system("commande");
… et ça devrait suffire.
C'est ce que j'ai fais mais ça me renvoie la valeur 10 en permanence.
J'execute unrar, or les exit codes de unrar vont de 0..9 puis 256.
Quand j’exécute la commande dans la cmd directement, il me donne bien le bon exit code.
En revanche, si je fais int r = system(command); // Avec command chaine de caractères contenant la commande unrar.
La j'obtiens 10 au lieu de 0 ou 3 quand je le fais dans la CMD directement.
Bonjour,
La faq est bien fournie, aussi, cette question te répondra.
Have fun!
Peux-tu nous montrer ici la commande exacte que tu tapes dans ton programme C et directement dans la ligne de commande ? Parce qu'à moins qu'il y ait des choses spécifiques à Windows de ce côté-là, « 10 » ne tombe pas du ciel. Il semblerait que ta commande renvoie bien cette valeur pour une raison où une autre.
Il se peut notamment que ce soit dû au fait que « unrar » te pose parfois des questions à l'écran, chose qu'il ne peux pas faire si tu le lances depuis system.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager