【发布时间】:2011-03-09 22:14:39
【问题描述】:
我正在尝试阅读有关设备(在 Solaris 机器中)的一些基本信息,例如没有。 CPU,没有。硬盘驱动器,没有。网络适配器等...
据我了解,我们无法直接从 Java 获取这些信息。 (如果我错了,请纠正我)。
因此,解决方法是调用 JNI 调用。
现在,我如何在 C/C++ 中编写代码? C 中是否有任何现有的系统调用/方法来获取这些信息?
我试图避免在 C 中使用 system() 方法,因为我想将信息存储为字符串。
我知道有一些 shell 命令,如 iostat、kstat、ifconfig 等……但是如何在我的 C/C++ 程序中模拟它们?
谢谢,
【问题讨论】:
-
>> 据我了解,我们无法直接从 Java 获取这些信息。您始终可以调用系统/shell 程序并捕获输出。这也适用于 Java。
-
同意以上。除非您只是在寻找学习 JNI 的借口,否则只需调用现有的系统命令并捕获输出就会容易得多。
-
您可以从
System.getProperty()获得一些非常基本的信息,例如os.arch、os.name- 这可以帮助您选择要调用的正确shell 程序(或要读取的正确文件)。 -
@Alexander:如何在 Java 中捕获系统调用?
-
@Brian:我对 JNI 有一些经验。我的问题是如何在 C/C++ 中捕获系统命令的输出?使用 system() 命令打印到标准输出。
标签: java c hardware solaris device