【发布时间】:2016-12-04 13:51:08
【问题描述】:
如何在 c++ 中以编程方式检索以下信息:
这是 Mac OSX 中的终端命令:
ioreg -c IOPlatformExpertDevice | awk '/board-id/ {print $4}' | awk -F '\"' '{print $2}'
我使用 IOKit 库来检索 IOPlatformSerialNumber 和 PlatformUUID 信息等信息。但是我找不到“board-id”的任何对应键。
【问题讨论】:
-
至少可以使用
pipe()和问题中的命令行。 -
@MarkSetchell 抱歉,打错了。
-
我不想使用 popen() 从我的代码中执行任何命令行语句,因为它不那么可靠。假设如果我使用一些“awk”或“sed”实用程序以及命令行语句来解析出我需要的值,那么我会做出以下巨大的假设:1.其他用户在他们的机器上拥有这些实用程序 2.这些实用程序是有效的而不是一些与标准实用程序同名的恶意代码。为了防止在这些情况下出现错误,最好使用内置系统库并尽可能从产品代码中调用它们。感谢您的建议。
标签: c++ macos awk iokit sysinfo