shm_overview(7)

SHM_OVERVIEW(7) 2008-06-25

NAME
shm_overview —— POSIX共享内存概述

DESCRIPTION
POSIX共享内存API允许矜持通过共享的内存区域交换信息。

此接口提供的API有:

shm_open(3) 创建和打开一个新的对象,或打开一个已存在的对象。这与open(2)类似。此调用返回一个文件描述符供下列接口使用。

ftruncate(2) 设置共享内存对象的大小。(一个新创建的共享内存对象具有0长度。)

mmap(2)   映射共享内存对象到调用进程的虚拟地址空间。

munmap(2) 解除调用进程虚拟空间与共享内存对象的映射。

shm_unlink(3) 移除共享内存对象的名字。

close(2) 关闭shm_open分配的文件描述符,在不再需要它之后。

fstat(2) 获取描述共享内存对象的stat结构。此调用返回的有效信息有对象大小(st_size),权限(st_mode),属主(st_uid),属组(st_gid)。

fchown(2) 改变共享内存对象的所有者。

fchmod(2) 改变共享内存对象的访问权限。

版本
POSIX共享内存从Linux2.4和glibc 2.2开始支持。

持久性
POSIX共享内存对象有内核持久性:一个共享内存对象在系统关闭之前一直存在,直到所有进程都解除了映射,且被shm_unlink删除。

链接
使用POSIX共享内存API的程序必须这样编译cc -lrt以链接到实时库librt。

通过文件系统访问共享内存对象
Linux下,共享内存对象在虚拟文件系统中创建,通常挂载在/dev/shm。内核2.6.19以后,Linux支持使用访问控制列表(ACLs)控制虚拟文件系统中的对象权限。

CONFORMING TO
POSIX.1-2001.

NOTES
典型的,进程必须同步访问一个共享内存对象,比如POSIX信号量。

System V共享内存(shmget,shmop等)是更老一些的信号量API。POSIX共享内存提供一个简单的,设计得更好的接口,但POSIX共享内存不如System V共享内存那样广泛被支持。

SEE ALSO
fchmod(2), fchown(2), fstat(2), ftruncate(2), mmap(2), mprotect(2),
munmap(2), shmget(2), shmop(2), shm_open(3), shm_unlink(3), sem_over‐
view(7)

COLOPHON
This page is part of release 3.23 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.

 

你可能感兴趣的:(view)