当前位置:  开发笔记 > 编程语言 > 正文

如何在C++中读取系统信息?

如何解决《如何在C++中读取系统信息?》经验,为你挑选了2个好方法。

我试图在C++的Linux系统上获取OS版本,硬盘空间,可用磁盘空间和已安装的RAM等信息.我知道我可以system()用来运行不同的Linux命令并捕获它们的输出(这是我目前正在做的)但我想知道是否有更好的方法?我可以使用C++标准库中的某些东西从操作系统获取信息吗?



1> Martin York..:

如果您通过系统使用*nix命令.

然后man会滚动到手册页的底部,它通常会显示相关的C系统调用.

Example:  man uname:
SEE ALSO
       uname(2), getdomainname(2), gethostname(2)


Explanation of numbers:

(1): User UNIX Command
(2): Unix and C system calls
(3): C Library routines
(4): Special file names
(5): File formats
(6): 
(7):
(8): System admin commands

所以如果你使用的是系统("uname").在手册页中,您可以看到还有一个uname C系统调用(uname(2)).因此,您现在可以执行"man 2 uname"以获取有关如何使用C系统调用uname的信息.


如果可以处理噪声,您还可以对现有的系统程序(应用程序)进行扫描.例如"strace uname -a"这将显示该程序进行的所有系统调用.找到正确的系统调用,您可以从自己的程序中调用相同的例程.

2> Johannes Sch..:

C++标准库中没有任何内容可用于这些目的.您可以使用的库libhal,它将程序视图抽象到硬件,从中收集各种信息/proc,/sys以及其他信息.HAL,向下滚动,似乎也有一个非官方的C++绑定(虽然没有测试过,而libhal对C++程序也很好).使用此命令lshal可显示HAL可用的所有设备信息.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有