[linux 3.2]我想知道是否有可能找出程序中打开的文件的内存位置。 假设我在a.cpp中有下面的代码,它编译成a.out:
FILE *f = fopen("myfile", "r");
内容是否会映射到a.out的内存空间?如果是这样,我怎么能找到它(页面?范围?)?
由于
答案 0 :(得分:4)
FILE *指向的结构包含有关文件状态的一些信息。内容未映射到程序的内存空间。
如果要将文件内容映射到内存空间,则必须使用mmap()函数。这将为您提供指向进程逻辑内存空间中内存区域的指针。该内存区域将保存文件的内容。