浅析Linux下进程间通信:共享内存

共享内存允许两个或多个进程共享一给定的存储区。因为数据不需要在客户进程和服务器进程之间复制,所以它是最快的一种IPC。使用共享内存要注意的是,多个进程之间对一给定存储区的同步访问。

主要用到的函数有:shmget(),shmctl(),shmat(),shmdt(),下面一一介绍:

一、shmget()函数

函数原型如下:

#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);

1. 函数功能:返回和key对应的共享内存标识符。分为两种情况:

1)该共享内存已经存在,则直接返回该共享内存标识符

2)key未对应相关的共享内存,此时若将key指定为IPC_PRIVATE或者将标志位shmflg上指定IPC_CREATE,该调用将产生一个新的共享内存,并与key及进行对应。

2.参数介绍:

size:为该共享内存的的长度,单位为字节。实现通常将其向上取为系统页长的整数倍。如果正在创建一个新内存段(一般是在服务器进程中),则必须指定其size。如果正在引用一个现存的内存段(一个客户进程),则将size指定为0。当创建一个新内存段时,段内的内容初始化为0。

待续。。。。。。。。。。

最新文章

  1. Java工程师面试题,整理自网络与博主各种笔试面试,持续更新
  2. android开发经验
  3. SQL 总结
  4. esp和ebp详解
  5. D&amp;F学数据结构系列——插入排序
  6. tlplayer for android V2.7(支持变速不变调) 2014-07-20更新
  7. STL中主要的算法(一)
  8. 手把手教你_android自己主动化实践方案选型
  9. mysql copy复制拷贝表数据及结构的几种方式(转)
  10. C语言中字符串
  11. 201521044091 《Java程序设计》第11周学习总结
  12. [转]python单元测试unittest
  13. SpringBoot集成rabbitmq(二)
  14. Python面向对象:杂七杂八的知识点
  15. 误用WeakHashMap引起的死循环cpu跑满问题
  16. ES6常用方法总结
  17. golang的interface剖析
  18. 理解 Memory barrier(内存屏障)【转】
  19. 2018 Multi-University Training Contest 3
  20. SolrJ查询条件组合查询实现——(十六)

热门文章

  1. 关于CGContextSetBlendMode: invalid context 0x0的错误
  2. iOS-浅谈runtime运行时机制
  3. iOS8通讯录之联系人增删查,多号码增删操作
  4. Java操作SFTP
  5. 实习日记:图像检索算法 LSH 的总结与分析(matlab)
  6. git 放弃本地修改 强制更新
  7. ASP.NET&#160;操作Cookie详解&#160;增加,修改,删除
  8. i-doit
  9. modelsim(2) - vcd (dump, 查看,格式理解)
  10. C++连接mysql的两种方式(ADO连接和mysql api连接)