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

标签 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 中的数据,因为暴露的信息不是真实设备。访问此数据的唯一方法是手动执行。

最佳答案

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

Do not use libsysfs

关于c++ - 使用 C/C++ 处理 sysfs 内容的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4673564/

相关文章:

Linux 命令行....如何从 $ 更改为 #?

c++ - 新套接字的名称

c++ - 履行一个(可能是无效的) promise

c++ - 结构中的枚举 - C 与 C++

linux - 什么是rtnetlink(linux操作系统),netlink和rtnetlink有什么区别?

linux - 限制符号链接(symbolic link)删除

c++ - 某些子网格未使用 CUDA 动态并行执行

c++ - uniform_int_distribution a()、b()、min() 和 max()

c - 我如何使用 sscanf 接受零作为输入,但不接受非数字输入?

c - EOF 宏如何与 getchar 一起使用?