原生C++实现共享内存编码
时间: 2023-07-12 17:40:44 浏览: 163
共享内存是一种进程间通信的方式,可以让多个进程共享同一块内存区域,从而实现数据的交换和共享。下面是一个简单的原生C++实现共享内存的示例代码:
```c++
#include <iostream>
#include <cstring>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
using namespace std;
int main()
{
key_t key = ftok("/tmp", 'a'); // 创建共享内存的key值
int shmid = shmget(key, 1024, IPC_CREAT | 0666); // 创建共享内存,大小为1024字节
char *shm = (char*) shmat(shmid, NULL, 0); // 获取共享内存的指针
// 写入共享内存
strcpy(shm, "Hello, World!");
// 从共享内存读取数据
cout << "Data read from shared memory: " << shm << endl;
// 分离共享内存
shmdt(shm);
// 删除共享内存
shmctl(shmid, IPC_RMID, NULL);
return 0;
}
```
上述代码中,首先使用ftok函数生成一个key,然后使用shmget函数创建共享内存,大小为1024字节。接着使用shmat函数获取共享内存的指针,就可以对共享内存进行读写操作了。最后使用shmdt函数分离共享内存,shmctl函数删除共享内存。
阅读全文