进程间通信-共享内存

发布时间 2023-04-03 20:42:01作者: shubin

共享内存介绍

  • 共享内存是将分配的物理空间直接映射到进程的用户虚拟地址空间中,减少数据在内核空间缓存
  • 共享内存是一种效率较高的进程间通讯的方式
  • 在 Linux 系统中通过 ipcs -m 查看所有的共享内存
  • 共享内存模型

共享内存创建

  • 创建共享内存调用 shmget() 函数

函数头文件
#include <sys/ipc.h>
#include <sys/shm.h>
函数原型
int shmget(key t key, size t size, int shmflg);
函数功能
创建一个共享内存,并返回 ID
函数参数

  • key :由 ftok()函数返口
  • size: 共享内存的大小
  • shmflg: 共享内存标志

函数返回值

  • 成功 : 返回 共享内存id
  • 失败:返回 -1,并设置 errno

创建一个共享内存,并打印出共享内存ID