file_operations:write与read方法

3,133次阅读
没有评论

函数原型:
ssize_t (*write) (struct file *,char __user *,size_t count,loff_t*)
ssize_t (*read) (struct file *,char __user *,size_t,loff_t*)
描术:向设备发送或接收数据。返回正值表示写入或是读取到的字节数。
参数 file (目前没用过. 不知道玩法)
参数 __user: 指向调用此驱动的用户空间 buff 区,conut 是写入的字节个数. loff_t 目前也不知道是啥玩意, 暂不研究

write 在内核代码空间的实现:

static ssize_t test_mod_write(struct file *file, const char *buffer, size_t count, loff_t * ppos)
{char stats[20];
int ret;
if (count == 0) {return count;}
ret = copy_from_user(&stats, buffer, count);
stats[count] = 0;
printk(KERN_ALERT"%.*sn",count-1,stats);
//printk(KERN_ALERT"%sn%dn",stats,count);
return count;
}
正文完
 0
评论(没有评论)