Récupérer dans un programme C la valeur de retour d'un script shell
Bonjour,
Je sais que ce sujet a déjà fait l'objet de plusieurs post.
Mais la réponse n'est hélas jamais claire!
J'ai le script shell 'monshell' suivant:
Code:
1 2 3 4
|
#!/bin/ksh
ex=-1
exit $ex |
Et j'ai le programme C suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#include <stdio.h>
#include <stdlib.h>
void
main (void)
{
int rc, wrc;
rc = system ("monshell");
printf ("system returns %d", rc);
wrc = WEXITSTATUS (rc);
printf ("WEXITSTATUS returns %d", wrc);
/* ex = ??? */
} |
Si dans le script shell je fais varier la valeur de l'exit (par exemple, ex = -2, -1, 0, 1, ou 2), je ne réussis jamais à récupérer ces valeurs dans mon programme C !
Comment faire pour récupérer la valeur de « ex » ?
En fait, j'ai l'impression d'avoir ceci :
Code:
1 2 3 4 5 6 7 8
|
Si ex < 0
rc = 65536 + 256 * ex
wrc = 256 + ex
Sinon
rc = 256 * ex
wrc = ex
FinSi |
Mais alors comment récupérer la valeur de « ex » à partir de la valeur « rc » et/ou « wrc » ???
Merci.