Zaskoczyło mnie dzisiaj gdb
:
Program exited with code 0146.
gdb
wypisuje kod powrotu ósemkowo ; sprawdzam, dlaczego znalazłem:
http://comments.gmane.org/gmane.comp.gdb.devel/30363
Ale to nie jest szczególnie satysfakcjonująca odpowiedź. Szybkie wyszukiwanie w Google nie ujawniło historii, więc miałem nadzieję, że ktoś na SO może poznać historię z przeszłości.
Nieco powiązane pytanie, w jaki sposób można nawet wyświetlić kod powrotu ósemkowo? Być może starsze maszyny zawsze drukowały kod powrotu?
$ printf %o\\n $?
Jest dość niezręczny :)
man ascii
do konwersji liczby ósemkowej na dziesiętną. bc
byłby lepszym wyborem.
$?
jest wartość skorupy dla kodu powrotu, i jest cyfrą dziesiętną (lub robi gdb wsparcie Twój przykład cmd też?). Nie wiem, dlaczego gdb zgłasza to ósemkowo. Moim rozwiązaniem jest wydostanie się z pamięci,man ascii
aby zobaczyć, co oznaczają wartości ósemkowe. Interesujące pytanie, ponieważ napotykasz także wartości ósemkowe z innych programów. Być może jest to omówione w „Unix Programming Envioronment” Kernighana i Pike'a. Powodzenia.