我在一个应用程序上收集和发送各种系统信息(分区空间/免费,笔记本电脑电池信息等).我没有太多的成功获取这种信息的形式直接c api ..虽然它的所有可用通过/ proc(或类似)中的文件.
所以 – 我想知道在我的c应用程序中是否阅读/解析这些文件是获取此信息的适当方式,还是应该继续尝试发现API? (注意:我正在使用statvfs).
到目前为止,它似乎更容易在Win32中收集这种信息.似乎很奇怪
解决方法
到目前为止,最好的做法是遵循以下优先顺序的API.
>您的语言API(在这里没有太多的帮助,但是对于字符串来说,C99字符串函数比使用Posix或其他OS标准指定的库字符串设施更好).
> Posix操作软件API
记录内核API
>未记录的内核API(至少这些将会破坏ioctl用户,如果他们改变,所以他们可能不会改变)
> / proc
> / dev / kmem,/ dev / mem
没有理由相信/ proc trolling将从发布到发布的可移植性甚至相同.不是每个系统都会有一个/ proc安装!
说完所有这一切,只需要从/ proc中删除东西就更容易了,如果它是唯一可用的接口,那么你应该继续使用it.qa
最后,最后两个的排序并不完全清楚,因为/ proc不能用于验证内核崩溃转储分析,但可以在核心转储中窥探的工具仍然可以工作.