在Linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。专栏前面的文章中演示过使用pipe、shared memory、unix domain socket进行IPC的方法。彼时,我们的重点在于unix domain socket。因此,前面关于共享内存的例子比较简单,仅仅是父子进程间通过system V IPC通信的过程。本文将更进一步探讨Linux进程间通过共享内容进行通信的方法。Shared memory允许两个或多个进程共享一给定的存储区,因为数据不需要来回复制,所以是最快的一种IPC机制。
一、背景知识
1. POSIX
维基百科上关于POSIX的解释:
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming interfaces (API), along with command line shells and utility interfaces, for software compatibility (portability) with variants of Unix and other operating systems.
一般情况下,应用程序通过API(而不是直接通过system call)来调用操作系统提供的各种服务。在Unix世界中,最流行的API是基于POSIX标