【发布时间】:2020-10-07 09:37:53
【问题描述】:
我正在尝试使用mmap 在我的设备上的进程之间映射和共享数据。我的目标是运行嵌入式 Linux 的嵌入式设备
我的流程是使用 C++ 实现的,并使用诸如 std::list 和 std::map 之类的容器。显然,容器的大小随着程序的运行而变化。
如果我使用在进程之间共享的结构,例如:
struct MYSTRUCT
{
int val1;
int val2;
list <int> list1;
};
MYSTRUCT myStruct;
// later as the program runs for example...
myStruct.list1.push_back(100);
然后我想使用 mmap 来映射它。 mmap 的 API 如下:
void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);
对于length参数,我可以使用sizeof(myStruct) + myStruct.list1.size()吗?
【问题讨论】:
-
查看 Boost.Interprocess。
标签: c++ linux ipc shared-memory mmap