In the previous chapter, we learned how to handle a (fictional) application design and implementation requirement: getting our C program to execute (exec) another program altogether. However, the reality is that the discussion remains incomplete; this chapter on process creation will fill in several gaps, and much more.
In this chapter, you will learn about some core Unix/Linux systems programming concepts: the gory details required to correctly program the critical fork(2) system call to create a process. Along the journey, Unix aficionado terms such as blocking calls, orphans, and zombies are made clear as well. The material carefully brings out subtle points, turning the average developer into a proficient one. The reader will, in parallel, learn to write C code to implement the preceding key concepts in a Linux systems application. As usual, several code examples...