本节书摘来自异步社区《UNIX网络编程 卷2:进程间通信(第2版)》一书中的第1章,第1.5节,作者:【美】W. Richard Stevens著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.5 fork、exec和exit对IPC对象的影响
我们需要理解fork、exec和_exit函数对于所讨论的各种形式的IPC的影响(_exit是由exit调用的一个函数)。图1-6对此作了总结。
表中多数特性将在以后的章节中讲述,不过我们需要强调几点。首先,考虑到无名同步变量(互斥锁、条件变量、读写锁、基于内存的信号量),从一个具有多个线程的进程中调用fork将变得混乱不堪。[Butenhof 1997]的6.1节提供了其中的细节。我们在表中只是简单地注明:如果这些变量驻留在共享内存区中,而且创建时设置了进程间共享属性,那么对于能访问该共享内存区的任意进程来说,其任意线程能继续访问这些变量。其次,System V IPC的三种形式没有打开或关闭的说法。我们将从图6-8和习题11.1和习题14.1中看出,访问这三种形式的IPC所需知道的只是一个标识符,因此知道该标识符的任何进程都能访问它们,尽管信号量和共享内存区可附带提出某种特殊处理要求。