我正在玩 C 中的内存映射文件,想知道是否有办法用内存映射文件透明地替换 fopen 中的 FILE *。
例子:
FILE * fp = g_fopen(...);
//Program does things to this fp.
fclose();
但相反,是否有可能 FILE *fp = my_fopen(...)
我自己的函数会在磁盘上打开一个文件 mmap 它,可能会更改内容,然后传回 FILE *,除了新的 my_fopen() 和 my_fclose() 之外,程序没有看到任何不同。
这是否可以在不必重写程序中完成操作的方式的情况下完成?