Linux c ++:apis vs/proc文件?

eth*_*nny 10 c++ linux battery procfs disk-partitioning

我正在开发一个应用程序来收集和发送各种系统信息(分区空间/免费,笔记本电脑电池信息等).我没有太多成功以直接c ++ api的形式获取此信息..虽然它可以通过/ proc(或类似)中的文件获得.

所以 - 我想知道在我的c ++应用程序中读取/解析这些文件是否是获取此信息的适当方式,还是应该继续尝试发现API?(注意:我正在使用statvfs).

到目前为止,看起来在Win32中收集此类信息更容易.似乎很奇怪.

Dig*_*oss 7

到目前为止,最好按照以下优先顺序坚持使用API​​.

  • 您的语言API(在这里对您没有多大帮助,但对于字符串而言,C99字符串函数比使用Posix或其他OS标准指定的库字符串工具更好.)

  • Posix操作软件API

  • 记录的内核API

  • 未记录的内核API(至少这些会破坏,比如ioctl用户,如果他们改变,那么他们可能不会改变)

  • /proc

  • /dev/kmem, /dev/mem

没有理由相信/proc拖钓从发布到发布都是可移植的,甚至是相同的.不是每个系统都会/proc安装!

说了这么多,这非常容易,只是凑的东西掉的/proc,如果它是唯一可用的接口,那么你应该继续使用it.qa

最后,最后两个的排序并不完全清楚,因为/proc不能用于事后内核崩溃转储分析,但可以查看核心转储的工具仍然有效.