solutions to programming exercises in The Linux Programming Interface by Michael Kerrisk