首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jffs2 Linux文件系统上的O_DIRECT支持

jffs2 Linux文件系统上的O_DIRECT支持
EN

Stack Overflow用户
提问于 2011-05-17 19:19:14
回答 1查看 897关注 0票数 1

我正在尝试使用O_DIRECT打开文件,而我们使用的是jffs2

代码语言:javascript
复制
fd = open(filename, O_RDONLY|O_DIRECT|O_SYNC);

但是我只得到一个“无效参数”的错误。我也尝试了in this SO link的解决方案,但没有效果。当然,我在构建源代码时也加入了"-D_GNU_SOURCE“。

我读到过在tmpfs上不支持O_DIRECT,但是找不到对jffs2的支持或取消支持。如果有人可以给我证明或不证明jffs2支持和/或任何其他我没有让O_DIRECT工作的东西。

注意:这一切的发生是因为当我使用fread()/read()时,Linux似乎会自己缓存内存数据。使用system("echo 3 > /proc/sys/vm/drop_caches");就太晚了,因为我不想让文件系统一开始就分配缓存。

谢谢,Naze

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-17 19:43:41

jffs2不支持O_DIRECT

can see in __dentry_open()指出,为了支持O_DIRECT,文件系统必须提供address_space_operations结构的direct_IO和/或get_xip_mem成员。您同样可以看到该jffs2 does not supply these members

不清楚为什么您如此热衷于避免页面缓存。页面缓存中的页面实际上是“空闲的”-当其他用途需要更多内存时,它们将被回收。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6030002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档