Hoje fui pego de surpresa por gdb
:
Program exited with code 0146.
gdb
imprime o código de retorno em octal ; procurando por que encontrei:
http://comments.gmane.org/gmane.comp.gdb.devel/30363
Mas essa não é uma resposta particularmente satisfatória. Uma pesquisa rápida no Google não revelou a história, então eu esperava que alguém na SO conhecesse a história por trás.
Uma pergunta um tanto relacionada, como alguém veria o código de retorno em octal? Talvez máquinas mais antigas sempre imprimissem o código de retorno?
$ printf %o\\n $?
É muito estranho :)
man ascii
seria inútil converter octal em decimal. bc
seria uma escolha melhor.
$?
é o valor do shell para o código de retorno e é um dígito decimal (ou o gdb também suporta o seu exemplo de cmd?). Não sei por que o gdb o informa em octal. Minha solução é sair do campoman ascii
para ver o que significam os valores octais. Pergunta interessante, como você também encontra valores octais de outros programas. Talvez isso seja discutido no 'Unix Programming Envioronment' de Kernighan e Pike. Boa sorte.