在内存空间中打开文件

时间:2013-04-04 18:32:27

标签: c++ c linux

[linux 3.2]我想知道是否有可能找出程序中打开的文件的内存位置。 假设我在a.cpp中有下面的代码,它编译成a.out:

FILE *f = fopen("myfile", "r");

内容是否会映射到a.out的内存空间?如果是这样,我怎么能找到它(页面?范围?)?

由于

1 个答案:

答案 0 :(得分:4)

FILE *指向的结构包含有关文件状态的一些信息。内容未映射到程序的内存空间。

如果要将文件内容映射到内存空间,则必须使用mmap()函数。这将为您提供指向进程逻辑内存空间中内存区域的指针。该内存区域将保存文件的内容。