我正在编写一个 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)
当我尝试 cat
或 hexdump
文件时,在前 4096 字节之后,我的驱动程序将获得零大小的读取(它被传递 0 for 大小
)。为什么会发生这种情况,如果逻辑上不在 EOF,我的驱动程序应该如何响应? (0 的响应表示 EOF,但任何更长的响应似乎会引起某种缓冲区溢出。目前,我返回 -EINVAL
。)
是否允许 sysfs 二进制属性返回多页信息?
最佳答案
原来我在注册属性的时候设置了最大尺寸为4096...哎呀
关于linux - 是否允许 sysfs 二进制属性返回多页数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37825416/