曲径通幽论坛
标题:
shmget | 共享内存的创建
[打印本页]
作者:
beyes
时间:
2009-9-5 16:55
标题:
shmget | 共享内存的创建
Linux 下使用函数 shmget() 来创建一个共享内存区,或者访问一个已存在的共享内存区。该函数定义在头文件 linux/shm.h中,原型如下:
#include <sys/ipc.h>
#include <sys/shm.h>
int
shmget
(
key_t
key
,
size_t
size
,
int
shmflg
);
参数 key
是由 ftok() 得到的键值;
参数 size
是以字节为单位指定内存的大小;
参数 shmflg
是操作标志位,它的一些宏定义如下:
IPC_CREATE
: 调用 shmget 时,系统将此值与其他共享内存区的 key 进行比较,如果存在相同的 key ,说明共享内存区已存在,此时返回该共享内存区的标识符,否则新建一个共享内存区并返回其标识符。
IPC_EXCL
: 该宏必须和 IPC_CREATE 一起使用,否则没意义。当 shmflg 取 IPC_CREATE | IPC_EXCL 时,表示如果发现内存区已经存在则返回 -1,错误代码为 EEXIST 。
注意
,当创建一个新的共享内存区时,size 的值必须大于 0 ;如果是访问一个已经存在的内存共享区,则置 size 为 0 。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2