Beej's Guide to Unix Interprocess Communication
ecst.csuchico.edu
ecst.csuchico.edu
(incidentally - does the above make sense? i am new to both gpus and ipc...)
For instance, the signals reference is showing its age. On Mac OS X (and probably other systems), the current signal mechanism does not uninstall the handling function after a signal fires. Also, you could have an entire discussion on the proper use of signals within multithreaded applications, and there is no mention of threads in this tutorial (because it's dated 1997).
Be aware that this is often a difference in signal(2) vs sigaction(2), and even those often have slightly different implementations. Note the SA_RESETHAND flag to sigaction, and the section "Portability" in signal(2) in Linux's man pages.
There must be a theological divide on the matter judging from the wording of the GNU man page which proudly proclaims pipes unidirectional.
The Stevens Unix network programming is a better source if you have it. Vendor documentation is often better too. Say you were interested in SYSV IPC:
http://www.ibiblio.org/pub/Linux/docs/LDP/programmers-guide/... http://www.advancedlinuxprogramming.com/alp-folder/alp-ch05-... http://developers.sun.com/solaris/articles/named_pipes.html http://www.ibm.com/developerworks/aix/library/au-ipc/
Working code like the APR is worth reading for portability issues, particularly with sockets. I'm sure there are many other examples.
Given all this would you really use this guide when writing code?