码迷,mamicode.com
首页 > 其他好文 > 详细

memalign vs malloc - 使用O_DIRECT参数open一个文件并读写

时间:2016-06-08 00:02:35      阅读:2237      评论:0      收藏:0      [点我收藏+]

标签:

听说使用odirect参数打开文件时能够以扇区的单位进行读写。

于是open了一个块设备文件/dev/sdo,当然还要带上读写参数O_RDWR

然后进行读写时出错了。

 

找了一会发现问题根本在于读写的buf未进行align。

这个align并非是长度进行align。因为我用alloc申请了数倍于512或4096的空间均不行。

 

后来发现是buf的地址需要align,而此操作只能通过memalign系列的函数来完成。

只要buf首地址是512的倍数,至于长度,就无所谓了。但是write/read的时候长度需要是512的整数倍。

memalign vs malloc - 使用O_DIRECT参数open一个文件并读写

标签:

原文地址:http://www.cnblogs.com/bettersky/p/5568431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!