使用C / C ++处理sysfs内容的最佳方法是什么?

时间:2011-01-12 20:14:10

标签: c++ c linux unix

Linux内核使用/ sys中的sysfs文件系统公开有关当前环境的信息。我有兴趣获取有关在线CPU及其内存层次结构(1级到3级缓存)的信息。

由于所有这些信息基本上都是文本文件,我可以自己编写解析器,但我很好奇在sysfs中处理信息的最佳方法是什么。目前我发现了两种选择:

libsysfs

libudev

libsysfs的缺点似乎是代码现在差不多5年了,几乎没有可用的文档,libudev似乎更活跃,但文档很少见。我在libudev - http://www.signal11.us/oss/udev/

上找到了一个有用的教程

在C / C ++中处理sysfs内容的最新方法是什么?

[更新]

目前,由于公开的信息不是真实设备,因此无法访问/sys/devices/system中存储的数据。访问此数据的唯一方法是手动执行此操作。

2 个答案:

答案 0 :(得分:12)

内核作者已发布sysfs-rules.txt,其中解释了如何使用sysfs。他们特别指出

  

不要使用libsysfs

答案 1 :(得分:1)

穿着你的鞋我可能会写自己的lib。由于这些库可能不会(也可能不会)满足您的所有要求。 fstream ftw。