1. Create shared memory
2. Attach shared memory
int shmget(key_t key, int size, int shmflg);
if ((shm_id = shmget (mykey, sizeof (struct sharedbuf), 0600 | IFLAGS)) < 0)
perror ("shmget");
2. Attach shared memory
char *buf = shmat (shm_id, 0, 0);
3. Read / Write shared memory
sharedbuf->size = size_;
memcpy(sharedbuf->buf, mybuf, size_);
memcpy(mybuf, sharedbuf->buf, sharedbuf->size);
3. Detach shared memory (optional)
shmdt (buf);
4. Remove shared memory
if (shmctl (shm_id, IPC_RMID, (struct shmid_ds *)0) < 0)
perror ("shmctl");
本文介绍了如何使用系统调用创建、附加、读写、分离及移除共享内存段。包括shmget初始化共享内存、shmat连接内存段、memcpy进行数据交换、shmdt断开连接以及shmctl移除内存段。
654

被折叠的 条评论
为什么被折叠?



