`
Jameslyy
  • 浏览: 386084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux C共享内存

阅读更多

共享内存相关函数:

 

1. shmid = shmget(IPC_PRIVATE, SIZE, IPC_CREAT|0666 ) ;

创建共享内存,如果共享内存已经存在,则获取已经存在的共享内存。

一般不是使用IPC_PRIVATE作为参数,可以使用 key_t mid = ftok("./ftok.tmp", 20); 获取共享内存的key。

 

2.  void *shmat(int shmid, const void *shmaddr, int shmflg)

把共享内存区对象映射到调用进程的地址空间

 

3. int shmdt(const void *shmaddr)

断开共享内存连接

 

4. int shmctl(int shmid, int cmd, struct shmid_ds *buf)

共享内存控制。 

CMD参数:

    IPC_STAT:得到共享内存的状态,把共享内存的shmid_ds结构复制到buf中

    IPC_SET:改变共享内存的状态,把buf所指的shmid_ds结构中的uid、gid、mode复制到shmid_ds结构内

    IPC_RMID:删除共享内存


查看共享内存命令:ipcs -m

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics