-APUE-:
fig10.22, protecting a critical region from a signal.
fig10.23, using sigsuspend to wait for a global variable to be set.
fig10.23-2, using sigaction instead of signal.
note:
after some testing, I figured out that compile source file with
../lib/signal.c also make correct executes.