J'ai été renversé aujourd'hui par gdb
:
Program exited with code 0146.
gdb
imprime le code retour en octal ; en cherchant pourquoi j'ai trouvé:
http://comments.gmane.org/gmane.comp.gdb.devel/30363
Mais ce n'est pas une réponse particulièrement satisfaisante. Une recherche rapide sur Google n'a pas révélé l'histoire, alors j'espérais que quelqu'un sur SO connaîtrait l'histoire.
Une question quelque peu connexe, comment pourrait-on même voir le code de retour en octal? Peut-être que les machines plus anciennes imprimaient toujours le code retour?
$ printf %o\\n $?
Est assez maladroit :)
man ascii
serait également inutile de convertir l'octal en décimal. bc
serait un meilleur choix.
$?
est la valeur de shell pour le code de retour, et est un chiffre décimal (ou pris en charge par votre exemple gdb cmd aussi?). Je ne sais pas pourquoi gdb le signale en octal. Ma solution est de sortir le 'olman ascii
pour voir ce que signifient les valeurs octales. Question intéressante, car vous rencontrez également des valeurs octales provenant d'autres programmes. Peut-être que cela est discuté dans Kernighan et Pike's 'Unix Programming Envioronment'. Bonne chance.