Linux的c + +:apis与/ proc文件?

我工作的应用程序来收集和发送系统信息的各种位(分区空间/免费,笔记本电池信息等)。 我没有太多的成功得到这个信息的forms直接c + + api ..虽然它的所有可用通过文件在/ proc(或类似)。

所以 – 我想知道是否读取/parsing我的c + +应用程序中的这些文件是获取此信息的适当方式,或者我应该不断尝试发现API? (注意:我正在使用statvfs)。

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

Solutions Collecting From Web of "Linux的c + +:apis与/ proc文件?"

坚持以下优先顺序的API是最好的做法。

  • 你的语言API(在这里对你没什么帮助,但是对于字符串来说,C99字符串函数比使用Posix或其他操作系统标准指定的库字符串函数更好用)。

  • Posix操作软件API

  • 记录的内核API的

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

  • /proc

  • /dev/kmem/dev/mem

没有理由相信/proc trolling是可移植的,甚至从发布到释放都是一样的。 不是每个系统甚至会有一个/proc挂载!

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

最后,最后两个的顺序并不完全清楚,因为/proc不适用于事后内核崩溃转储分析,但是可以在核心转储中查看的工具仍然可以工作。

我虽然/ proc是API(一切都是一个文件…)

正如你所注意到的,许多Linux系统信息在/proc 。 而且你是正确的,通常没有用于检索信息的C API(尽管如果你倾向于使用bash而不是C ++),通常会有一个shell命令。 在最坏的情况下,你可能会坚持通过/proc进行解析,尽管你可能能够以开源的shell命令的形式为你想要的特定项目获取一些示例代码。