gpt4 book ai didi

c - 我无法在这个简单的设备驱动程序模块中使用 echo 和 cat 。

转载 作者:行者123 更新时间:2023-11-30 15:40:58 24 4
gpt4 key购买 nike

    static ssize_t device_read (struct file* filp, char *bufStoreData, size_t bufCount, loff_t* curOffset)
{
printk(KERN_INFO"reading from the device");
ret = copy_to_user(bufStoreData,virtual_device.data,bufCount);
return ret;
}

static ssize_t device_write(struct file *filp,const char* bufSourceData,size_t bufCount, loff_t* curOffset)
{
printk(KERN_INFO"writing to device");
ret=copy_from_user(virtual_device.data,bufSourceData,bufCount);
return ret;
}

我使用 echo 和 cat 命令来执行用户写入和读取,但我没有正确读取数据。也许我没有返回正确的值。是这样吗?

最佳答案

device_read()device_write() 返回值是读/写字节数。如果复制了所有字节,copy_to_user()copy_from_user() 返回 0,否则返回未复制的字节数。

您的操作可能成功,并且返回 0,这意味着“复制了 0 个字节”。

您必须在成功时返回 bufCount 并在失败时返回负错误代码。

ret=copy_from_user(virtual_device.data,bufSourceData,bufCount);
if (ret)
return ret;

return bufCount;

关于c - 我无法在这个简单的设备驱动程序模块中使用 echo 和 cat 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20745957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com