maa*_*ank 3 linux kernel sysfs
从文档中:
- store() 应该返回缓冲区使用的字节数。如果整个缓冲区已被使用,则仅返回计数参数。
它对这个值有什么作用?如果我从大小为 FOO 的缓冲区读取 4 个字节而不是 6 个字节,有什么区别?
您必须意识到,通过实现 sysfs 文件,您试图表现得像一个文件。
让我们先从另一面来看这一点。从手册页fwrite(3)
:
返回值
fread() 和 fwrite() 返回成功读取或写入的项目数(即,不是字符数)。如果发生错误或到达文件结尾,则返回值是短项目计数(或零)。
更好的是,从手册页write(2)
:
例如,如果底层物理介质上没有足够的空间,或者遇到 RLIMIT_FSIZE 资源限制(请参阅 setrlimit(2)),或者调用被信号处理程序中断,则写入的字节数可能小于 count。写入的字节数少于 count 个字节。(另请参见管道(7)。)
这意味着store()
,为您的特定文件实现函数另一端的write(2)
应该返回写入的字节数(即您读取的字节数),以便至少write(2)
可以将该值返回给用户。
在大多数情况下,如果输入没有错误,您只想返回count
以确认您已阅读所有内容并且一切正常。
归档时间: |
|
查看次数: |
2661 次 |
最近记录: |