'ruby' exit code 32512

J

jacob

Hi, I was having trouble with what seems to be an inconsistency in
ruby exit codes. I can explain this best with examples:

On Windows XP, the command:
ruby -e 'exit(32512)' || echo hi

yeilds output (as it seems it should):
hi

whereas on Mac OS X Darwin, the same command does not output anything
(where I expect it to output "hi"). Ruby on OS X behaves as I would
expect if other exit codes are used.

"ruby -v" for the windows computer: ruby 1.8.4 (2006-04-14) [i386-
mswin32]
"ruby -v" for the mac computer: ruby 1.8.2 (2004-12-25) [universal-
darwin8.0]


Thank you ahead of time for help in this matter,

Jacob
 
A

ara.t.howard

Hi, I was having trouble with what seems to be an inconsistency in
ruby exit codes. I can explain this best with examples:

nothing to do with ruby

man 2 wait
...

WEXITSTATUS(status)

evaluates to the least significant eight bits of the return code of the child
which terminated, which may have been set as the argument to a call to
exit() or _exit() or as the argument for a return statement in the main
program. This macro can only be evaluated if WIFEXITED returned true.

...

the exit staus in unix is stored in only the first byte of the exit status
word. and

32512 => 11111110 0000000
^
^
^
exit status


this is one of the beautiful things about windows being non-posix.

;-)

-a
 
M

Mike Fletcher

unknown said:
Hi, I was having trouble with what seems to be an inconsistency in
ruby exit codes. I can explain this best with examples:

On Windows XP, the command:
ruby -e 'exit(32512)' || echo hi

yeilds output (as it seems it should):
hi

whereas on Mac OS X Darwin, the same command does not output anything
(where I expect it to output "hi"). Ruby on OS X behaves as I would
expect if other exit codes are used.

Not sure about Windows, but a quick glance through Stevens' _Advanced
Programming in the UNIX Environment_ reinforces my off-the-cuff
recollection that POSIX doesn't specify more than allowing an 8-bit exit
status code to make it through. See the wait(2) manual page for the
documentation for the WEXITSTATUS(status) macro, which on both OS X and
Linux specifically mention 8-bits.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top