浅析Linux下进程间通信:共享内存
2024-10-16 02:34:18
浅析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。
待续。。。。。。。。。。
最新文章
- Java工程师面试题,整理自网络与博主各种笔试面试,持续更新
- android开发经验
- SQL 总结
- esp和ebp详解
- D&;F学数据结构系列——插入排序
- tlplayer for android V2.7(支持变速不变调) 2014-07-20更新
- STL中主要的算法(一)
- 手把手教你_android自己主动化实践方案选型
- mysql copy复制拷贝表数据及结构的几种方式(转)
- C语言中字符串
- 201521044091 《Java程序设计》第11周学习总结
- [转]python单元测试unittest
- SpringBoot集成rabbitmq(二)
- Python面向对象:杂七杂八的知识点
- 误用WeakHashMap引起的死循环cpu跑满问题
- ES6常用方法总结
- golang的interface剖析
- 理解 Memory barrier(内存屏障)【转】
- 2018 Multi-University Training Contest 3
- SolrJ查询条件组合查询实现——(十六)
热门文章
- 关于CGContextSetBlendMode: invalid context 0x0的错误
- iOS-浅谈runtime运行时机制
- iOS8通讯录之联系人增删查,多号码增删操作
- Java操作SFTP
- 实习日记:图像检索算法 LSH 的总结与分析(matlab)
- git 放弃本地修改 强制更新
- ASP.NET&#160;操作Cookie详解&#160;增加,修改,删除
- i-doit
- modelsim(2) - vcd (dump, 查看,格式理解)
- C++连接mysql的两种方式(ADO连接和mysql api连接)