【发布时间】:2014-04-21 17:08:36
【问题描述】:
我想到了这个问题,因为我正在努力加快我的程序。
我从文件中读取数据,并且像往常一样使用经典的:
FILE *fp;
fp=fopen("c:\\test.txt", "r");
FILE 指针包含一个我不太了解的结构。
主要问题是:当我执行 fopen 时,我以某种方式将文件放入 RAM,或者每次使用文件指针时它都会从 HD 读取它?
操作系统:Linux Mint、gcc 编译器
【问题讨论】:
-
当然取决于它的操作系统。您可以查看以下链接:stackoverflow.com/a/22745741/2724703
-
你可以专门把文件放到你的虚拟地址空间,调用是
mmap()。但是即使使用mmap(),您也不能保证代表系统立即采取行动,它可能不会从磁盘读取任何内容,直到您实际尝试从落入映射内存区域的地址中读取。
标签: c pointers memory-management file-io fopen