Linux C共享内存

共享内存相关函数:

 

1. shmid = shmget(IPC_PRIVATE, SIZE, IPC_CREAT|0666 ) ;

创建共享内存,如果共享内存已经存在,则获取已经存在的共享内存。

一般不是使用IPC_PRIVATE作为参数,可以使用 key_t mid = ftok("./ftok.tmp", 20); 获取共享内存的key。

 

2.  void *shmat(int shmid, const void *shmaddr, int shmflg)

把共享内存区对象映射到调用进程的地址空间

 

3. int shmdt(const void *shmaddr)

断开共享内存连接

 

4. int shmctl(int shmid, int cmd, struct shmid_ds *buf)

共享内存控制。 

CMD参数:

    IPC_STAT:得到共享内存的状态,把共享内存的shmid_ds结构复制到buf中

    IPC_SET:改变共享内存的状态,把buf所指的shmid_ds结构中的uid、gid、mode复制到shmid_ds结构内

    IPC_RMID:删除共享内存


查看共享内存命令:ipcs -m

 

你可能感兴趣的:(共享内存,shmget,shmctl,shmat,shmdt)