当前位置: 技术问答>linux和unix
O_DIRECT
来源: 互联网 发布时间:2016-10-25
本文导语: 有没有人用过O_DIRECT选项,加上这个选项后,文件操作接口使用起来很麻烦,有没有现成的接口? | 开源的代码我们当时也找过,但没找到,项目急着用,就自己写了几个函数,大致思路就是上面所说的...
有没有人用过O_DIRECT选项,加上这个选项后,文件操作接口使用起来很麻烦,有没有现成的接口?
|
开源的代码我们当时也找过,但没找到,项目急着用,就自己写了几个函数,大致思路就是上面所说的。
|
没用过?你用这个敢什么用?是为了读写大文件提高效率?还是预防掉电尽量少丢数据?
|
直接I/O?
|
数据库系统通常自己管理缓存,所以有可能使用O_DIRECT。楼主在实现数据库系统吗?
为什么说“文件操作接口使用起来很麻烦”?O_DIRECT只是打开文件时的一个Flag,貌似跟文件操作接口没关系。
|
使用O_DIRECT的话,就必须以页为单位进行I/O,这是没办法的事,因为设备本身就是块设备。你可以加一层中间代码,自己计算对齐后的文件偏移量,用posix_memalign生成对齐的buffer,进行I/O以后,再把buffer里面的内容copy到调用者的buffer里面去。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。