linux - 是否允许 sysfs 二进制属性返回多页数据?

标签 linux linux-kernel linux-device-driver embedded-linux cat

我正在编写一个 linux 设备驱动程序,除其他外,它在 sysfs 中公开了一个只读二进制属性,其接口(interface)是

static ssize_t read_dump_fifo(struct file *filp, struct kobject *kobj, 
        struct bin_attribute *attr, char __user *buffer,
        loff_t f_pos, size_t size)

当我尝试 cathexdump 文件时,在前 4096 字节之后,我的驱动程序将获得零大小的读取(它被传递 0 for 大小)。为什么会发生这种情况,如果逻辑上不在 EOF,我的驱动程序应该如何响应? (0 的响应表示 EOF,但任何更长的响应似乎会引起某种缓冲区溢出。目前,我返回 -EINVAL。)

是否允许 sysfs 二进制属性返回多页信息?

最佳答案

原来我在注册属性的时候设置了最大尺寸为4096...哎呀

关于linux - 是否允许 sysfs 二进制属性返回多页数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37825416/

相关文章:

linux-kernel - 如何在/proc/driver 下创建 proc 条目?

linux - 从硬件 IRQ 号获取 Linux IRQ 号

linux - "lsof"命令无法返回 kwrite 打开的文件

java - 使用java在linux中列出子目录/文件

php - 通过 URL 将文件上传到我的 Linux PHP 虚拟主机

c - 对 CLOCK_TAI 的 pthread 条件支持

c - 尝试映射大页面 (1GB) 时 mmap 失败

linux - 如果我禁用抢占和 irq,udelay 是确定性的吗?

Linux 为 DECLARE_WORK 中的函数传递参数

linux根据文件名模式搜索文件