下午好,我今天遇到一个问题,我正在创建一个设备驱动程序,我可以在那里获取它以完美地读取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;
}