显示HN:一个(勉强)有用的x86-64 ELF可执行文件,大小为301字节
Show HN: A (marginally) useful x86-64 ELF executable in 301 bytes

原始链接: https://github.com/meribold/btry

`btry` 是一个体积很小的 (298 字节) x86-64 Linux 程序,用于显示笔记本电脑电池状态。它读取 `/sys/class/power_supply/BAT0` 目录中的数据,具体查找 `energy_now` 和 `energy_full` 文件,以瓦时 (Wh) 为单位报告电池电量。 然而,某些系统 (例如 ThinkPad X220) 使用 `charge_*` 文件,在这种情况下 `btry` 以安培时 (Ah) 为单位显示电量。该程序可以处理只存在其中一种文件类型的情况,但如果两种文件都没有找到,可能会进入无限循环。 它目前仅支持主电池 (忽略附加电池),并且关于唤醒后插电与否的行为可能因系统而异。该程序以 base64 编码和 xz 压缩的可执行文件形式提供。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 展示 HN:一个(略有)用处的 x86-64 ELF 可执行文件,大小 301 字节 (github.com/meribold) 4 分,由 meribold 发布 1 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 帮助 emanuele-em 24 分钟前 [–] 301 字节!base64 一行安装是个不错的炫技。当 energy_full 不存在时接受无限循环是代码高尔夫的巅峰,在每个字节都很重要时完全合理。哪里有关于汇编的详细说明?回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

A battery status program for x86-64 Linux laptops in the form of a 298-byte ELF executable.

$ btry
30.6 Wh / 31.1 Wh (98%)

Sometimes there are no energy_now and energy_full files, but charge_* files instead (at least on my ThinkPad X220). If this is the case, btry prints ampere hours instead of watt hours.

$ btry
2.2 Ah / 2.8 Ah (78%)
base64 -d <<< 'AAAAgAD//////////wA/kdbV/T4SKqi4gu7TNukZJeNdhjgGWjLCw6YYwm3tgKjiZLitH
TPynRup8/TcSWlb7S75z0Swm5ipLfTcVY6E8/U348s4Og9wn9AgwNCgnr0A0kXHg5O3HvOy7A/FMZVjVqjQy
trAuDJun4UWBOpPsREPuvRIkQw3x2/i9swEaWPcjw1UpaonANEY/kXoLt4PoHvTlNulQGdNRNiv8ceHxpgOo
FPX7wLmbeMEUlwLal8kpRg74q84kP7Uic+iE8z7kFHjzyK0W1LsQLUosF8B8F+55Iw5QWtgbJ9HzPm2cUofz
tBnp3vx7ERXQ+mz1jF6sqi63Op7TLjN9PbTebxoRYOfTfp88AA=' | xz -d > btry && chmod +x btry
  • Anything that's not x86-64 and Linux is definitely not supported.
  • I don't know how standard/portable the /sys/class/power_supply/BAT0 path used actually is.
  • If neither an energy_full nor a charge_full file exists in /sys/class/power_supply/BAT0, an infinite loop results.
  • Extra batteries (like in the ThinkPad T480) are ignored.

No.

When my ThinkPad X220 is plugged in at the time I wake it from suspend mode, I get the charge_now file. When it is not plugged in I get the energy_now file. At least I think that's how it works.

联系我们 contact @ memedata.com