[C] code retour négatif
Résolu
almor57
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
almor57 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
almor57 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Salut
Je cherche un moyen simple de tester en C un code retour qui peut prendre des valeurs positives ou négatives.
Si le pgm appelé retourne une valeur positive ou nulle, le pgm appelant peut utiliser WEXITSTATUS.
Si le pgm appelé retourne une valeur négative, WEXITSTATUS rend le complément à 256.
La seule solution que j'ai trouvée est de faire un test du type :
if (code_retour > 128) code_retour -= 256
Existe-t-il une fonction permettant de transformer aussi bien les codes retour renvoyés négatifs et positifs ?
Merci
Je cherche un moyen simple de tester en C un code retour qui peut prendre des valeurs positives ou négatives.
Si le pgm appelé retourne une valeur positive ou nulle, le pgm appelant peut utiliser WEXITSTATUS.
Si le pgm appelé retourne une valeur négative, WEXITSTATUS rend le complément à 256.
La seule solution que j'ai trouvée est de faire un test du type :
if (code_retour > 128) code_retour -= 256
Existe-t-il une fonction permettant de transformer aussi bien les codes retour renvoyés négatifs et positifs ?
Merci
A voir également:
- [C] code retour négatif
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
fait plutot un
code_retour = WEXITSTATUS(status) - 128 ;
c'est bete mais ca marche
Mon compilateur est GCC sous Mandrake 10.1.
Ta soluce est OK pour les codes retour <0 qui reviennent du WEXITSTATUS entre 128 et 255, mais quand ils sont positifs ... ta formule les rend négatifs.
En améliorant avec un
if (WEXITSTATUS(status) >= 128)
cret -= 128;
on retombe sur ma première solution
Ce qui m'intéresse, dans ce cas c'est de connaître les compilateurs avec lesquels ça pourrait ne pas marcher. Mon appli est destinée à être distribuée - gratuitement - sur des plate-formes que je ne connais pas à l'avance.
Merci
Merci quand même
Merci bcp