首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux字符设备: userspace (cat)不会停止读取

Linux字符设备: userspace (cat)不会停止读取
EN

Stack Overflow用户
提问于 2018-05-31 06:18:42
回答 1查看 161关注 0票数 0

我制作了一个简单的字符设备,并创建了一个与它通信的节点。当我cat /dev/mychrdev时,它的用户空间会一次又一次地调用我的字符设备的读取函数。有关守则是:

代码语言:javascript
复制
static ssize_t useless_read(struct file *filp, char __user *buff, size_t count, loff_t *offp) {
    int ret, read_count;

    read_count = sprintf(message, "Major number: %d\n", MAJOR(useless_chr_dev->cdev_num));

    ret = copy_to_user(buff, message, read_count);

    if (ret == 0) {
            printk(KERN_INFO "userspace read success");
            return read_count;
    } else
            return -EFAULT;
}

在我从终端开始读取之后,dmesg中充满了:

代码语言:javascript
复制
[ 8966.299554] userspace read success

猫发出了大量的

代码语言:javascript
复制
Major number: 242
Major number: 242
Major number: 242
Major number: 242

为什么不停下来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 06:24:30

cat不是一次调用读取函数的问题。cat将继续调用read函数,除非您返回一个0(即不需要读取更多字节)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50617831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档