| Contents |

13 More IPC Resources

13.1 Books

Here are some books that describe some of the procedures I’ve discussed in this guide, as well as Unix details in specific:

Bach, Maurice J. The Design of the UNIX Operating System. Published by Prentice-Hall, 1986. ISBN 013201799750.

W. Richard Stevens. Unix Network Programming, volumes 1-2. Published by Prentice Hall. ISBNs for volumes 1-2: 013141155151, 013081081952.

W. Richard Stevens. Advanced Programming in the UNIX Environment. Published by Addison Wesley. ISBN 020143307953.

13.2 Other online documentation

UNIX Network Programming Volume 2 home page54—includes source code from Stevens’ superfine book.

The Linux Programmer’s Guide55—in-depth section on IPC.

UNIX System Calls and Subroutines using C56—contains modest IPC information.

The Linux Kernel57—how the Linux kernel implements IPC.

13.3 Linux man pages

There are Linux manual pages. If you run another flavor of Unix, please look at your own man pages, as these might not work on your system.


  1. https://beej.us/guide/bgnet↩︎

  2. https://beej.us/guide/bgipc↩︎

  3. https://beej.us/guide/bgipc/source/examples/fork1.c↩︎

  4. https://beej.us/guide/bgipc/source/examples/sigint.c↩︎

  5. https://beej.us/guide/bgipc/source/examples/sigusr.c↩︎

  6. https://man.archlinux.org/man/sigaction.2↩︎

  7. https://man.archlinux.org/man/sigwait.3↩︎

  8. https://man.archlinux.org/man/sigwaitinfo.2↩︎

  9. https://man.archlinux.org/man/sigtimedwait.2↩︎

  10. https://man.archlinux.org/man/sigsuspend.2↩︎

  11. https://man.archlinux.org/man/sigpending.2↩︎

  12. https://man.archlinux.org/man/kill.2↩︎

  13. https://man.archlinux.org/man/raise.3↩︎

  14. https://man.archlinux.org/man/sigqueue.3↩︎

  15. https://man.archlinux.org/man/sigemptyset.3↩︎

  16. https://man.archlinux.org/man/sigfillset.3↩︎

  17. https://man.archlinux.org/man/sigaddset.3↩︎

  18. https://man.archlinux.org/man/sigdelset.3↩︎

  19. https://man.archlinux.org/man/sigismember.3↩︎

  20. https://man.archlinux.org/man/sigprocmask.2↩︎

  21. https://man.archlinux.org/man/sigaltstack.2↩︎

  22. https://man.archlinux.org/man/siginterrupt.3↩︎

  23. https://man.archlinux.org/man/sigsetjmp.3↩︎

  24. https://man.archlinux.org/man/siglongjmp.3↩︎

  25. https://man.archlinux.org/man/signal.2↩︎

  26. https://beej.us/guide/bgipc/source/examples/pipe1.c↩︎

  27. https://beej.us/guide/bgipc/source/examples/pipe2.c↩︎

  28. https://beej.us/guide/bgipc/source/examples/pipe3.c↩︎

  29. https://beej.us/guide/bgipc/source/examples/speak.c↩︎

  30. https://beej.us/guide/bgipc/source/examples/tick.c↩︎

  31. POSIX says PIPE_BUF will be at least 512 bytes. So that’s your portable safe zone.↩︎

  32. https://beej.us/guide/bgipc/source/examples/lockdemo.c↩︎

  33. https://en.wikipedia.org/wiki/POSIX↩︎

  34. https://beej.us/guide/bgipc/source/examples/kirk.c↩︎

  35. https://beej.us/guide/bgipc/source/examples/spock.c↩︎

  36. https://beej.us/guide/bgipc/source/examples/semdemo.c↩︎

  37. https://beej.us/guide/bgipc/source/examples/semdemo.c↩︎

  38. https://beej.us/guide/bgipc/source/examples/semrm.c↩︎

  39. Or whatever the current addictive FPS game is these days.↩︎

  40. https://en.wikipedia.org/wiki/Concurrency↩︎

  41. https://beej.us/guide/bgipc/source/examples/shmdemo.c↩︎

  42. https://beej.us/guide/bgipc/source/examples/mmapdemo.c↩︎

  43. https://beej.us/guide/bgnet↩︎

  44. https://beej.us/guide/bgnet↩︎

  45. https://beej.us/guide/bgnet↩︎

  46. https://man.archlinux.org/man/shutdown.2↩︎

  47. https://beej.us/guide/bgipc/source/examples/echos.c↩︎

  48. https://beej.us/guide/bgipc/source/examples/echoc.c↩︎

  49. https://beej.us/guide/bgipc/source/examples/spair.c↩︎

  50. https://beej.us/guide/url/unixdesign↩︎

  51. https://beej.us/guide/url/unixnet1↩︎

  52. https://beej.us/guide/url/unixnet2↩︎

  53. https://beej.us/guide/url/advunix↩︎

  54. http://www.kohala.com/start/unpv22e/unpv22e.html↩︎

  55. http://tldp.org/LDP/lpg/node7.html↩︎

  56. https://users.cs.cf.ac.uk/Dave.Marshall/C/↩︎

  57. https://tldp.org/LDP/tlk/ipc/ipc.html↩︎

  58. https://man.archlinux.org/man/accept.2↩︎

  59. https://man.archlinux.org/man/bind.2↩︎

  60. https://man.archlinux.org/man/connect.2↩︎

  61. https://man.archlinux.org/man/dup.2↩︎

  62. https://man.archlinux.org/man/exec.2↩︎

  63. https://man.archlinux.org/man/exit.2↩︎

  64. https://man.archlinux.org/man/fcntl.2↩︎

  65. https://man.archlinux.org/man/fileno.3↩︎

  66. https://man.archlinux.org/man/fork.2↩︎

  67. https://man.archlinux.org/man/ftok.3↩︎

  68. https://man.archlinux.org/man/getpagesize.2↩︎

  69. https://man.archlinux.org/man/ipcrm.8↩︎

  70. https://man.archlinux.org/man/ipcs.8↩︎

  71. https://man.archlinux.org/man/kill.1↩︎

  72. https://man.archlinux.org/man/kill.2↩︎

  73. https://man.archlinux.org/man/listen.2↩︎

  74. https://man.archlinux.org/man/lockf.2↩︎

  75. https://man.archlinux.org/man/lseek.2↩︎

  76. https://man.archlinux.org/man/mknod.1↩︎

  77. https://man.archlinux.org/man/mknod.2↩︎

  78. https://man.archlinux.org/man/mmap.2↩︎

  79. https://man.archlinux.org/man/msgctl.2↩︎

  80. https://man.archlinux.org/man/msgget.2↩︎

  81. https://man.archlinux.org/man/msgsnd.2↩︎

  82. https://man.archlinux.org/man/munmap.2↩︎

  83. https://man.archlinux.org/man/open.2↩︎

  84. https://man.archlinux.org/man/pipe.2↩︎

  85. https://man.archlinux.org/man/ps.1↩︎

  86. https://man.archlinux.org/man/raise.3↩︎

  87. https://man.archlinux.org/man/read.2↩︎

  88. https://man.archlinux.org/man/recv.2↩︎

  89. https://man.archlinux.org/man/semctl.2↩︎

  90. https://man.archlinux.org/man/semget.2↩︎

  91. https://man.archlinux.org/man/semop.2↩︎

  92. https://man.archlinux.org/man/send.2↩︎

  93. https://man.archlinux.org/man/shmat.2↩︎

  94. https://man.archlinux.org/man/shmctl.2↩︎

  95. https://man.archlinux.org/man/shmdt.2↩︎

  96. https://man.archlinux.org/man/shmget.2↩︎

  97. https://man.archlinux.org/man/sigaction.2↩︎

  98. https://man.archlinux.org/man/signal.2↩︎

  99. https://man.archlinux.org/man/signal.7↩︎

  100. https://man.archlinux.org/man/sigpending.2↩︎

  101. https://man.archlinux.org/man/sigprocmask.2↩︎

  102. https://man.archlinux.org/man/sigsetopts.2↩︎

  103. https://man.archlinux.org/man/sigsuspend.2↩︎

  104. https://man.archlinux.org/man/socket.2↩︎

  105. https://man.archlinux.org/man/socketpair.2↩︎

  106. https://man.archlinux.org/man/stat.2↩︎

  107. https://man.archlinux.org/man/wait.2↩︎

  108. https://man.archlinux.org/man/waitpid.2↩︎

  109. https://man.archlinux.org/man/write.2↩︎


| Contents |