【问题标题】:Is there a way to get battery info (status, plugged in, etc) without reading a proc/sys file on linux?有没有办法在不读取 Linux 上的 proc/sys 文件的情况下获取电池信息(状态、插入等)?
【发布时间】:2012-11-01 20:37:27
【问题描述】:

我想在 linux 上获取有关 C 中电池的信息。我不想读取或解析任何文件!是否有任何到 acpi/内核或任何其他模块的低级接口来获取我想要的信息?

我已经在网上搜索过,但每个问题的答案都是“parse /proc/foo/bar”。我真的不想这样做,因为我认为低级接口不会像文件那样快速变化。

最好的问候。

【问题讨论】:

  • 如果你仔细想想,/proc 是用户空间的内核接口
  • 在 Unix 上,特别是在 Linux 上,文件(或伪文件)是获取信息的正常方式。我不相信您应该搜索其他内容。
  • 在这里问可能会更好:unix.stackexchange.com

标签: c linux kernel battery acpi


【解决方案1】:

/proc 文件系统在磁盘上不存在。相反,内核在内存中创建它。它们在访问时由内核按需生成。因此,您的担忧是无效的——/proc 文件将在内核意识到更改后尽快更改。

查看this 了解有关/proc 文件系统的更多信息。

无论如何,我不相信有任何替代界面。

【讨论】:

    【解决方案2】:

    您可能正在寻找 UPower:http://upower.freedesktop.org/

    这是桌面环境和移动设备的共同需求,因此随着时间的推移出现了许多解决方案。例如,最古老的之一是acpid,现在已经过时了。

    虽然出于代码清晰的原因,我建议使用像 UPower 这样的轻量级抽象,但 /proc 和(在某种程度上)/sys 中的文件被认为是 Linux 内核 ABI 的一部分,这意味着更改它们一般不被接受。

    【讨论】:

    • 这对我来说看起来不错。还因为我不想在我的中包含其他 C 代码(例如您的 upower 解决方案)。所以,这种方式对我来说似乎是唯一容易的方式。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多