如何在驱动程序读取函数中重置缓冲区(初始化为零):myread(struct file * file,char __user * buf,size_t len,loff_t * fops)?

时间:2013-01-29 18:55:27

标签: c linux-kernel linux-device-driver

我需要在将字符串c复制到buf之前将此用户空间缓冲区设置为零如何将缓冲区初始化为零。

static ssize_t myread(struct file *file,char __user *buf,size_t len, loff_t  *fops)
{
    printk(KERN_INFO"My read with length %d \n",len);
    len = strlen(c);

    if(copy_to_user(buf,c,len) != 0)
        return -EFAULT;
    else if (*fops > 0)
        return 0;
        else
            *fops += len;
            return len;
}

1 个答案:

答案 0 :(得分:2)

使用memset

请参阅联机帮助页的使用方法,它将为一系列连续的buf addrs设置一个常量字节