shithub: trueawk

ref: b9b8a321d5353f8b43b22bb0595fa2de137530aa
dir: /bugs-fixed/system-status.awk/

View raw version
# 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*")
}