sysfs 二进制属性是否允许 return 多于一页数据?
Are sysfs binary attributes allowed to return more than one page of data?
我正在编写一个 linux 设备驱动程序,除其他外,它在 sysfs 中公开了一个只读二进制属性,其接口是
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 个字节之后,我的驱动程序将获得零大小的读取(对于 size
传递 0 ).为什么会发生这种情况,如果逻辑上不在 EOF,我的驱动程序应该如何响应? (0 的响应表示 EOF,但任何更长的响应似乎都会引发某种缓冲区溢出。目前,我 return -EINVAL
。)
是否允许 sysfs 二进制属性 return 多于一页的信息?
原来我在注册属性的时候设置了最大尺寸为4096...哎呀
我正在编写一个 linux 设备驱动程序,除其他外,它在 sysfs 中公开了一个只读二进制属性,其接口是
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 个字节之后,我的驱动程序将获得零大小的读取(对于 size
传递 0 ).为什么会发生这种情况,如果逻辑上不在 EOF,我的驱动程序应该如何响应? (0 的响应表示 EOF,但任何更长的响应似乎都会引发某种缓冲区溢出。目前,我 return -EINVAL
。)
是否允许 sysfs 二进制属性 return 多于一页的信息?
原来我在注册属性的时候设置了最大尺寸为4096...哎呀