1 1.1 christos # Unmodified nawk prints the 16 bit exit status divided by 256, but 2 1.1 christos # does so using floating point arithmetic, yielding strange results. 3 1.1 christos # 4 1.1 christos # The fix is to use the various macros defined for wait(2) and to 5 1.1 christos # use the signal number + 256 for death by signal, or signal number + 512 6 1.1 christos # for death by signal with core dump. 7 1.1 christos 8 1.1 christos BEGIN { 9 1.1 christos status = system("exit 42") 10 1.1 christos print "normal status", status 11 1.1 christos 12 1.1 christos status = system("kill -HUP $$") 13 1.1 christos print "death by signal status", status 14 1.1 christos 15 1.1 christos status = system("kill -ABRT $$") 16 1.1 christos print "death by signal with core dump status", status 17 1.1 christos 18 1.1 christos system("rm -f core*") 19 1.1 christos } 20