[linux 3.2] 我想知道是否可以找出在程序中打开的文件的内存位置。 假设我在编译为 a.out 的 a.cpp 中有以下代码:
FILE *f = fopen("myfile", "r");
内容会被映射到a.out的内存空间吗?如果是这样,我怎样才能找到它(页面?范围?)?
谢谢
最佳答案
FILE* 指向的结构包含有关文件状态的一些信息。内容没有映射到程序的内存空间。
如果你想将文件内容映射到内存空间,你必须使用 mmap() 函数。这将为您提供指向进程逻辑内存空间中内存区域的指针。该内存区域将保存文件的内容。
关于c++ - 在内存空间打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818961/