system-v IPC共享内存通信
目录[*]system v IPC简介
[*]共享内存需要用到的函数接口
[*]shmget函数--获取对象ID
[*]shmat函数--获得映射空间
[*]shmctl函数--释放资源
[*]共享内存实现思路
[*]注意
system v IPC简介
消息队列、共享内存和信号量统称为system v IPC(进程间通信机制),V是罗马数字5,是UNIX的AT&T分支的其中一个版本,一样平常称它们为IPC对象。这些对象的操作接口比较类似,在系统中它们都会利用一种名为key的键值来统一标识。进程每次“打开”一个IPC对象,就会获得一个表征这个对象的ID,ID可以操作这个对象。IPC的对象是唯一的,但是ID是可变的。
共享内存需要用到的函数接口
shmget函数--获取对象ID
https://img2024.cnblogs.com/blog/3421360/202404/3421360-20240425224829934-349536810.png
shmat函数--获得映射空间
https://img2024.cnblogs.com/blog/3421360/202404/3421360-20240425225042056-1373397277.png
shmctl函数--释放资源
https://img2024.cnblogs.com/blog/3421360/202404/3421360-20240425225307732-147566331.png
shmid: 共享内存段的标识符,通常是由shmget()函数返回的共享内存标识符。
cmd: 控制命令,用于指定要执行的操作。常见的控制命令包罗:
IPC_STAT: 获取共享内存段的状态信息,并将其存储在struct shmid_ds *buf中。
IPC_SET: 设置共享内存段的状态信息,buf中包含要设置的新值。
IPC_RMID: 删除共享内存段。
共享内存实现思路
https://img2024.cnblogs.com/blog/3421360/202404/3421360-20240425232725500-581850930.png
注意
共享内存是sytem-v IPC 中通信效率最高的,保护性不高。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]