C++ 使用C/C++;?

C++ 使用C/C++;?,c++,c,linux,unix,C++,C,Linux,Unix,Linux内核使用/sys中的sysfs文件系统公开有关当前环境的信息。我对获取有关联机CPU及其内存层次结构(1级到3级缓存)的信息感兴趣 由于所有这些信息基本上都是文本文件,我可以自己编写解析器,但我很好奇在sysfs中处理信息的最佳方式是什么。目前,我发现了两种选择: libsysfs 及 libudev libsysfs的缺点似乎是代码现在已经有将近5年的历史了,而且几乎没有可用的文档,libudev似乎更活跃,但文档非常稀少。我在libudev上只找到了一个有用的教程-- 在C/C++

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

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

libsysfs

libudev

libsysfs
的缺点似乎是代码现在已经有将近5年的历史了,而且几乎没有可用的文档,
libudev
似乎更活跃,但文档非常稀少。我在
libudev
上只找到了一个有用的教程--

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

[更新]


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

穿上你的鞋,我可能会编写自己的库。因为这些LIB可能不会(也可能不会)满足您的所有要求。fstream ftw.

内核作者已经发表了一篇文章,解释了必须如何使用sysfs。他们特别指出

不要使用libsysfs


既然您用
unix编程
标记了它,那么
awk
是否有可能?对于文本解析来说,这似乎是一条阻力最小的路径。不久前我也在寻找这方面的东西,最后我屈服了,写了我自己的,因为我意识到在所有的文件中,我真正感兴趣的只是一点特定的信息,因此,这种开销是不值得的……按照上面的描述,我使用了
libudev
,不幸的是,它没有在
/sys/devices/system
中列出设备/子系统,这种行为有特殊原因吗?