C语言内存映射文件如何实现,能否详细解释一下?

2026-04-16 17:574阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计332个文字,预计阅读时间需要2分钟。

C语言内存映射文件如何实现,能否详细解释一下?

我正在玩内存映射文件,想知道是否存在一种明确地使用fopen替换FILE *和内存映射文件的方法。例如:FILE *fp=g_fopen(...); // Program does things to this fp fclose(fp); 但相反,是否有FILE *的情况?

我正在玩C中的内存映射文件,并想知道是否存在
是一种透明地用fopen替换FILE *和内存映射文件的方法.

例:

FILE * fp = g_fopen(...); //Program does things to this fp. fclose();

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

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

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

C语言内存映射文件如何实现,能否详细解释一下?

神奇的词是“图书馆介入”.这是一个很好的教程: 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.它涵盖了图书馆插入的主题,更多技术细节.

标签:内存

本文共计332个文字,预计阅读时间需要2分钟。

C语言内存映射文件如何实现,能否详细解释一下?

我正在玩内存映射文件,想知道是否存在一种明确地使用fopen替换FILE *和内存映射文件的方法。例如:FILE *fp=g_fopen(...); // Program does things to this fp fclose(fp); 但相反,是否有FILE *的情况?

我正在玩C中的内存映射文件,并想知道是否存在
是一种透明地用fopen替换FILE *和内存映射文件的方法.

例:

FILE * fp = g_fopen(...); //Program does things to this fp. fclose();

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

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

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

C语言内存映射文件如何实现,能否详细解释一下?

神奇的词是“图书馆介入”.这是一个很好的教程: 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.它涵盖了图书馆插入的主题,更多技术细节.

标签:内存