加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C中的内存映射文件

发布时间:2020-12-16 09:23:59 所属栏目:百科 来源:网络整理
导读:我正在玩C中的内存映射文件,并想知道是否存在 是一种透明地用fopen替换FILE *和内存映射文件的方法. 例: FILE * fp = g_fopen(...);//Program does things to this fp.fclose(); 但相反,是否有可能有FILE * fp = my_fopen(…) 我自己的函数会在磁盘mmap上打
我正在玩C中的内存映射文件,并想知道是否存在
是一种透明地用fopen替换FILE *和内存映射文件的方法.

例:

FILE * fp = g_fopen(...);

//Program does things to this fp.

fclose();

但相反,是否有可能有FILE * fp = my_fopen(…)

我自己的函数会在磁盘mmap上打开一个文件,也许更改内容然后传回FILE *而程序看不到任何东西
除了新的my_fopen()和my_fclose()之外.

这是否可以不必重写程序中的操作方式?

解决方法

神奇的词是“图书馆介入”.这是一个很好的教程: http://developers.sun.com/solaris/articles/lib_interposers.html

当Oracle购买sun时,许多文章似乎已经消失和/或无法通过Oracle网站访问.

这里有一些链接,暂时是可用的:

>这是2001年发表的原始文章:Building Library Interposers for Fun and Profit(Dobbs博士)
> developers.sun.com链接是原作者的转发版,可能与2001年的文章有所不同;这是重新发布:Debugging and Performance Tuning with Library Interposers(Wayback Machine)
>适用于Sun Studio / Oracle Solaris Studio的Linker & Libraries Guide.它涵盖了图书馆插入的主题,更多技术细节.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读