免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 10431 | 回复: 23
打印 上一主题 下一主题

[函数] 如何创建一个文件, 写入它的时候却是写入内存? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-27 22:15 |只看该作者 |倒序浏览
我使用一个库, 其中有一个函数A, A接受一个文件路径, 将数据写入文件之后返回. 现在我不想让A写入磁盘文件, 而是要在内存中继续处理A写出的数据. 而我又不想将让A写入磁盘文件后再读入处理, 这样效率太慢. *nix/windows有没有这样的机制能够创建一个文件, 当我们写入文件的时候, 实际上是在写入内存的一个区域呢? 就类似设备文件, 但是是在用户层的? 或者其他的能解决这个问题的方法?

不知道我描述清楚了没有?
谢谢先.

论坛徽章:
1
申猴
日期:2014-02-11 14:50:31
2 [报告]
发表于 2010-01-27 22:48 |只看该作者
共享内存可否? 当不再操作的时候,把共享内存的数据写入到一个文件里面去

论坛徽章:
0
3 [报告]
发表于 2010-01-27 22:57 |只看该作者
内存映射文件?

论坛徽章:
0
4 [报告]
发表于 2010-01-28 01:44 |只看该作者

回复 #1 gaussanderson 的帖子

man fmemopen
man open_memstream

论坛徽章:
0
5 [报告]
发表于 2010-01-28 02:10 |只看该作者

回复 #1 gaussanderson 的帖子

创建一个文件,然后删除它

论坛徽章:
0
6 [报告]
发表于 2010-01-28 07:44 |只看该作者

回复 #1 gaussanderson 的帖子

ramdisk

论坛徽章:
0
7 [报告]
发表于 2010-01-28 10:21 |只看该作者
mmap

论坛徽章:
0
8 [报告]
发表于 2010-01-28 10:46 |只看该作者
想问一个问题, 如果一个文件被mmap了, 那么在我说的A函数中并没有mmap这个文件, 这时他写入的数据能够从mmap的那段内存区域读到吗?

论坛徽章:
0
9 [报告]
发表于 2010-01-28 11:30 |只看该作者
试了一下, 好像mmap的内存不能读到用"conventional I/O(read, write)"写的数据. 难道用这样的接口一定要用ramdisk了吗?没有其他办法了吗?

论坛徽章:
0
10 [报告]
发表于 2010-01-28 11:37 |只看该作者

回复 #5 sithui 的帖子

删除了这个文件之后我传递什么参数给这个函数A呢? 虽然我能够对这个文件进行写入, 写入也的确应该是在内存中的, 但是对于函数A来说, 它会创建这样一个文件然后写入, 结果仍然是在磁盘上的啊.  这个技巧对于不能改变的接口A来说是失效的吧,是吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP