c++ - 在内存空间打开文件

标签 c++ c linux

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

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

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

谢谢

最佳答案

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

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

关于c++ - 在内存空间打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818961/

相关文章:

c++ - 是否有用于封装线程行为的通用设计模式或面向对象的方法?

C++ : Help needed to debug generic linked list

c - 二部图中的最大匹配

linux - 在 Linux 中编译 C++

c++ - 如何生成具有指数分布(均值)的随机数?

c++ - std::to_string 线程安全吗?

C分配和内存开销

Python有条件地求解延迟微分方程

linux - 编写一个可以以 root/sudo 运行的 linux 脚本

linux - 使用 bash 从文件中获取随机字节数?