【问题标题】:Are sysfs binary attributes allowed to return more than one page of data?sysfs 二进制属性是否允许返回多于一页的数据?
【发布时间】:2016-06-15 11:14:57
【问题描述】:

我正在编写一个 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)

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

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

【问题讨论】:

  • 如果相关,我使用的是内核版本 3.4.0(不幸的是,在 3.11 中对二进制属性的增强之前)。

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


【解决方案1】:

原来我在注册属性时设置了最大大小为 4096...哎呀。

【讨论】:

  • 继续并接受您的回答以解决问题。
猜你喜欢
  • 2013-08-10
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 2013-03-05
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-12
相关资源
最近更新 更多