【发布时间】:2014-08-24 03:09:58
【问题描述】:
是否可以在 Linux 中获取特定文件描述符上的内存映射总量?为了清楚起见,我制作了一个如何打开/创建内存映射的小示例代码:
int fileDescriptor = open(mapname, O_RDWR | O_CREAT | O_EXCL, 0666);
if(fileDescriptor < 0)
return false;
//Map Semaphore
memorymap = mmap(NULL, sizeof(mapObject), PROT_READ | PROT_WRITE, MAP_SHARED, fileDescriptor, 0);
close(fileDescriptor);
内存映射被多个进程使用。我可以访问将使用此内存映射的其他进程的代码库。如何以 100% 正确的方式获取 fileDescriptor 上有多少张地图?
【问题讨论】:
-
只有你的进程会打开文件吗?
-
@Ben 有多个进程将使用该文件。
-
所有进程都归你所有吗?如您是否可以选择编辑访问文件的任何内容的代码?
-
@Ben 所有这些过程都归我所有。我可以完全访问将要使用它的所有程序的代码。
-
我想我得到的是你能做一个简短的应用程序,接受来自每个访问文件的应用程序的套接字连接。然后当他们访问它时,他们会连接这个“其他”程序来计算它的连接?
标签: c++ linux shared-memory