使用copy_from_user在内核模式下将字节写入int

时间:2018-12-07 19:33:29

标签: c kernel driver

下午好,我今天遇到一个问题,我正在创建一个设备驱动程序,我可以在那里获取它以完美地读取dice_read函数,但是当我尝试使用dice_write时,似乎不起作用什么都没有。我什至还添加了printk来尝试进行故障排除,但无论如何它似乎从未到达过那里。不太清楚为什么。我只是尝试使用“ echo -ne \ x8 \ x4> / dev / dice”行,并且应该将带有“ 4”的字节放入int中。我在下面添加了我的dice_write。谢谢! (边是全局变量)

static ssize_t dice_write(struct file * file, const char * buf,
                      size_t count, loff_t *ppos)
{
    char *data = kmalloc(sizeof(buf), GFP_KERNEL);

    copy_from_user(data, &buf, count);

    int i = sizeof(data);
    sides = 0;
    char digit = data[i - 1];
    if(digit >= '0' && digit <= '9'){
        sides = digit - '0';
    }

    kfree(data);

    return count;
}

0 个答案:

没有答案