boost iostream映射文件和boost进程间映射文件之间有区别吗?

Yij*_*sei 12 c++ boost interprocess boost-iostreams boost-interprocess

我想在内存中创建一个映射的二进制文件; 但是我不确定如何创建要映射到系统的文件.我多次阅读文档并意识到有2个映射文件实现,一个在iostream中,另一个在进程间.

你们对如何在共享内存中创建映射文件有任何想法吗?我试图允许多线程程序读取以二进制文件格式写入的大型double数组.iostream中的映射文件和进程间的区别是什么?

Joe*_*e D 2

据我所知,iostreams 会将映射文件放置在共享内存中(这就是你想要的);然而,进程间却将文件放置在另一个进程的地址空间中。

您可能应该使用 iostream,除非您有多个进程(不是线程)以某种方式相互通信。

  • @Joe D:这根本不是我从进程间库得到的印象。具体来说,从文档中可以看出:“系统创建一个文件映射来关联文件和进程的地址空间。” 对于多个进程,它本质上与文件系统备份共享内存。 (2认同)