主题 : 有关驱动中copy_to_user()  传递数组的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 55342
精华: 0
发帖: 11
金钱: 60 两
威望: 12 点
综合积分: 22 分
注册时间: 2011-09-16
最后登录: 2012-04-28
楼主  发表于: 2011-10-20 15:13

 有关驱动中copy_to_user()  传递数组的问题

static ssize_t read(struct file *filp, char *buffer, size_t count, loff_t *ppos)
{
int data;
data = .......................
copy_to_user(buffer,data,sizeof(data));
return sizeof(data);
}
当在用户态调用read函数时,即可把内核态的data读出;
但是如果是一个数组data[3]呢?
我是这么写的,可是结果好像有点问题
static ssize_t read(struct file *filp, char *buffer, size_t count, loff_t *ppos)
{
int data[3];
data[0] = .......................;
data[1] = .......................;
data[2] = .......................;
copy_to_user(buffer,data,sizeof(data[3]));
return sizeof(data[3]);
}
不知道哪里错了
麻烦大家帮忙看看
级别: 新手上路
UID: 55342
精华: 0
发帖: 11
金钱: 60 两
威望: 12 点
综合积分: 22 分
注册时间: 2011-09-16
最后登录: 2012-04-28
1楼  发表于: 2011-10-20 15:16

 Re:有关驱动中copy_to_user() 传递数组的问题

copy_to_user(buffer,data,sizeof(data));
一句写错了,应该是
copy_to_user(buffer,&data,sizeof(data));