共享内存即允许两个不相关的进程访问同一个逻辑内存,一个简单的进程之间的通信用以下函数即可:
1.创建共享内存
int shmget(key_t key, size_t size, int shmflg);
key:为共享内存段命名
size:以字节为单位指定需要共享的内存容量
shmflg:权限标志,与与IPC_CREAT做或操作可指定权限
2.启动对该共享内存的访问,并把共享内存连接到当前进程的地址空间
void *shmat(int shm_id, const void *shm_addr, int shmflg);
shm_id:shm_addr返回的共享内存标识
shm_addr:指定共享内存连接到当前进程中的地址位置
shm_flag:标志位,通常为零
3.将共享内存从当前进程中分离
int shmdt(const void *shmaddr);
shmaddr:shmat返回的地址指针
4.控制共享内存
int shmctl(int shm_id, int command, struct shmid_ds *buf);
shm_id:shmget返回的共享内存标识符、
command:要采取的操作
buf:指向共享内存模式和访问权限的结构
M
MengyingYu
@MengyingYu
1
声望
34
帖子
817
资料浏览
0
粉丝
0
关注
MengyingYu 发布的帖子
-
进程通信之共享内存