嵌入式Linux系统
-
ls -al /sys/class/xxxx
-r--r--r-- 4096
-
ftell/lstat(st_size) 返回 4096
-
fread(fp, 1, 4096, buf)
返回 3
实际上,使用vi打开文件只有3个字节。
有什么问题?
/sys
是一种特殊的文件系统,其中文件由内核按需生成。看man sysfs(5)更多细节:
sysfs 文件系统是一个伪文件系统,它提供了内核数据结构的接口。 (更准确地说,sysfs 中的文件和目录提供了内核内部定义的 kobject 结构的视图。)sysfs 下的文件提供有关设备、内核模块、文件系统和其他内核组件的信息。
文件大小在/sys
报道者ls
不是实际大小,因为文件内容并不是为了获取文件大小而生成的。内容仅生成于read
系统调用。
另请注意,fseek
and ftell
不会报告实际文件大小sysfs
要么是因为,文件内容仅在read
系统调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)