Voir toute la discussion dans une seule page
Ecrit par
meta le vendredi 6 juillet 2012 dans le thème :
C
Bonjour,
J'utilise popen pour exécuter une commande ksh dont je redirige le stderr:
2> /dev/null.
Si le résultat de la commande est bon, aucun message n'est affiché sur
stdout car il est récupéré via le descripteur dans une chaîne de caractères
C et c'est ce que je veux.
Si le résultat n'est pas bon, le message d'erreur de la commande s'affiche
systématiquement malgré la redirection.
De plus, ni le message provenant du perror ni celui du printf (exécutés en
cas de résultat ko) ne sont affichés que ce soit sur le stderr ou le stdout
(pourtant j'ai bien fermé le descripteur du popen avant). Je voudrais
l'inverse ! C.à.d que les messages C soient affichés, mais pas ceux du ksh.
Le premier problème se résout en fermant le stderr mais je voudrais éviter
cela. Peut-on malgré tout imaginer une fermeture temporaire de stderr dont
aura préalablement dup2-liqué le descripteur pour le réouvrir après, mais je
n'ai pas eu le temps de faire la manip ? Existe-t'il une autre solution (je
préfèrerais) ?
Pour le second, je n'ai pas trouvé.
Merci pour toute aide.
Classé sous : stderr,
popen,
commande,
résultat,
message