file_operations:write与read方法

3,089次阅读
没有评论

函数原型:
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
评论(没有评论)