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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
#!/bin/ksh
ex=-1
exit $ex
Et j'ai le programme C suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.