Advertisement

共享内存与管道的C语言实现

阅读量:

共享内存

共享内存C语言API设计与实现

int shmget(key_t key, int size, int shmflg) ,用于创建或获取一块共享内存区域。
**void shmat(int shmid, const void shmaddr, int shmflg) ,用于将由shmid标识的共享内存与当前运行的进程进行绑定。在实际使用共享内存之前,必须首先调用shmat函数以实现连接操作。
*int shmdt(const void shmaddr) ,用于断开当前进程与之前通过shmat函数连接的共享内存之间的关联。其中参数shmaddr为shmat函数返回的共享内存地址。
*int shmctl(int shmid, int cmd, struct shmid_ds buf) ,用于对共享内存执行各种控制操作。当参数cmd设置为IPC_RMID时,该函数将删除由shmid所标识的共享内存对象。

单个进程对共享内存操作

以下代码共包含四个步骤:
1、生成一块共享内存区域,并获取其对应的标识符。
2、利用所获取的标识符以及当前进程的内存地址,建立映射关联;随后将字符串“hello,word!”写入其中;完成操作后解除该映射关系。
3、再次建立映射连接,从共享内存中读取存储的数

全部评论 (0)

还没有任何评论哟~