Linux编程入门一POSIX共享内存

Posted mb62de8abf75c00

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux编程入门一POSIX共享内存相关的知识,希望对你有一定的参考价值。


System V共享内存和共享文件映射允许无关进程共享内存区域以便执行IPC的技术,和两种技术都存在一些不足。

  • System V共享内存模型使用的是键和标识符,这与标准的UNIX I/O模型使用文件名和描述符的做法不一致的。这种差异意味着使用System V共享内存段需要一整套全新的系统调用和命令。
  • 使用一个共享文件映射来进行IPC要求创建一个磁盘文件,即使无需对共享区域进行持久存储也需要这样做。除了因需要创建文件所带来的不便之外,这种技术还会带来一些文件I/O开销。
    由于存在这些不足,所有POSIX.1b定义了一组新的共享内存API:POSIX共享内存。

概述

POSIX共享内存能够让无关进程共享一个映射区域而无需创建一个相应的映射文件。Linux从内核2.4起开始支持POSIX共享内存。SUSv3并没有对POSIX共享内存的实现细节进行规定,特别是没有要求使用一个(真实或虚拟)文件系统来标识共享内存对象,但很多UNIX实现都采用了文件系统来标识共享内存对象。一些UNIX实现将共享对象名创建为标准文件系统上一个特殊位置处的文件。Linux使用挂载于/dev/shm目录下的专用tmpfs文件系统。


以上是关于Linux编程入门一POSIX共享内存的主要内容,如果未能解决你的问题,请参考以下文章

Linux编程之共享内存

在线程中创建posix共享内存

Linux编程入门一System V共享内存

linux进程间通信之Posix共享内存用法详解及代码举例

system v和posix的共享内存对比

如何在 c 中使用 posix 命名信号量和 Linux 上两个进程之间的共享内存?