我正在编写一个 C 程序,根据电池是否正在充电来计算剩余电池寿命或充电时间。我这样做的方法是读取/sys/class/power_supply/BAT0
. 计算剩余电池寿命:
battery life = charge_now / current_now
计算充电时间:
charge time = (charge_full - charge_now) / current_now
上面两个公式产生的结果与命令的输出完全相同acpi
。但是,我注意到有时,由于某种原因,文件charge_now
、charge_full
和current_now
不存在于目录中,但其他文件(例如capacity
和 )status
仍然存在。发生这种情况时,我无法计算电池寿命或充电时间。但acpi
还是能算出来的。为什么这些文件有时会消失acpi
?发生这种情况时如何仍然能够计算电池寿命和充电时间?