【发布时间】:2009-05-26 15:25:23
【问题描述】:
我在 C 中玩弄内存映射文件,想知道是否有 是一种将 fopen 中的 FILE * 透明地替换为内存映射文件的方法。
例子:
FILE * fp = g_fopen(...);
//Program does things to this fp.
fclose();
但是,是否可以让 FILE *fp = my_fopen(...)
我自己的函数会在磁盘上打开一个文件 mmap 它,可能会更改内容然后传回 FILE * 而程序看不到任何东西 除了新的 my_fopen() 和 my_fclose() 之外不同。
这是否可以在不必重写程序中完成操作的方式的情况下做到?
【问题讨论】:
-
这些答案适用于 *ix 系统,适用于 Windows 的答案在这里:stackoverflow.com/questions/7369445/…
标签: c memory file-io transparency library-interposition