[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shell som tar emot negativt exit status



Simon Johansson wrote:
Skriptet som körs startar ett C-Program som avslutas med exit -1.

När sedan skriptet försöker att skriva ut exit statusen från a.out så blir
det 255. Här nedan visar jag hur skriptet ser ut.
[...]
Är det någon som vet om det går att hämta ut exit status som är negativt i
shellskript. Har även provat med bash.

Hej!

Jag har inte en direkt lösning på ditt problem, men väl ett sätt att gå runt det.
Tvåkomplementet av -1 i ett åttabitars tal är just 255. Funkar så här:

Dec | Tvåkomplement (8-bitar)
----+------------------------
 2  |      2
 1  |      1
 0  |      0
-1  |    255
-2  |    254

Den talrymd som kan uttryckas i ett åtta bitars signerat tal blir då +127 till -128. Ett åtta bitar osignerat tal kan representera värdena 0 till 255.

Så det du behöver göra är att räkna om det returvärde som shellet ser till den ursprungliga. Subtrahera 256 ifån tal som är större än 127, så får du det ursprungliga, signerade, värdet.

mvh,
/Martin Leben
--
Remove dashes and numbers (if any) to get my real email address.
I subscribe to the mailing lists i write to.
Please don't CC me on replies.



Reply to: