主题 : linux字符设备驱动读写数据量问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 74437
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2012-07-24
最后登录: 2013-09-26
楼主  发表于: 2012-09-25 21:02

 linux字符设备驱动读写数据量问题

我在应用程序里调用read。
fread(Buf, sizeof(Buf), 1, fp0);
无论传入的参数sizeof(Buf)为多大。到了驱动里定义的读函数
static ssize_t read(struct file *filp, char __user *buf, const size_t size, loff_t *ppos)
内核打印出来的参数size一直是4096或4096的整数倍。。。

这是什么原因?每次读数据只能是4096B的整数倍吗??

write没有这样的问题。

PS.我用国嵌教程简单字符设备驱动的实验代码运行也有同样的问题。。。



级别: 新手上路
UID: 47613
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2011-05-24
最后登录: 2013-02-17
1楼  发表于: 2013-01-18 10:34
可能是内存4k为一页