diff options
Diffstat (limited to 'bugs-fixed/system-status.awk')
-rw-r--r-- | bugs-fixed/system-status.awk | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/bugs-fixed/system-status.awk b/bugs-fixed/system-status.awk new file mode 100644 index 0000000..8daf563 --- /dev/null +++ b/bugs-fixed/system-status.awk @@ -0,0 +1,19 @@ +# Unmodified nawk prints the 16 bit exit status divided by 256, but +# does so using floating point arithmetic, yielding strange results. +# +# The fix is to use the various macros defined for wait(2) and to +# use the signal number + 256 for death by signal, or signal number + 512 +# for death by signal with core dump. + +BEGIN { + status = system("exit 42") + print "normal status", status + + status = system("kill -HUP $$") + print "death by signal status", status + + status = system("kill -ABRT $$") + print "death by signal with core dump status", status + + system("rm -f core*") +} |