【发布时间】:2013-04-15 21:22:13
【问题描述】:
来自文档:
- store() 应该返回缓冲区中使用的字节数。如果 整个缓冲区已被使用,只需返回 count 参数。
这个值有什么作用?如果我从大小为 FOO 的缓冲区读取 4 而不是 6 字节,有什么区别?
【问题讨论】:
来自文档:
- store() 应该返回缓冲区中使用的字节数。如果 整个缓冲区已被使用,只需返回 count 参数。
这个值有什么作用?如果我从大小为 FOO 的缓冲区读取 4 而不是 6 字节,有什么区别?
【问题讨论】:
你必须意识到,通过实现一个 sysfs 文件,你试图表现得像一个文件。
让我们先从另一面来看。来自fwrite(3)的手册页:
返回值
fread() 和 fwrite() 返回成功读取或写入的项目数(即,不是字符数)。如果发生错误,或者文件结尾是 达到,返回值是一个短的项目计数(或零)。
更好的是,来自write(2) 的手册页:
如果底层物理介质或 RLIMIT_FSIZE 资源空间不足,则写入的字节数可能少于 count 遇到限制(请参阅 setrlimit(2)),或者在写入少于 count 个字节后调用被信号处理程序中断。 (另见管道(7)。)
这意味着store(),它为您的特定文件实现write(2) 函数的另一端应该返回写入(即由您读取)的字节数,至少这样@987654325 @ 可以将该值返回给用户。
在大多数情况下,如果输入没有错误,您只需返回 count 以确认您已阅读所有内容并且一切正常。
【讨论】:
kobject_create_and_add,它需要一个父节点来创建目录,但我不知道如何获取指向现有节点的指针! (我给NULL,所以它会在sysfs的根目录下创建一个目录)。
/sys/module/ 的句柄吗?当您插入一个模块时,会在/sys/module/module_name 下自动创建一个文件夹。我很高兴知道如何在该特定文件夹下添加文件。我无法想象像sysfs_get_self() 这样的函数不存在。