【问题标题】:get the return value of command run in the terminal in c++获取C++终端中运行命令的返回值
【发布时间】:2011-11-12 15:39:06
【问题描述】:
现在这是我的代码。此命令将执行一个脚本,如果它在终端中运行,它应该返回 Mac 上的 Safari 浏览器版本。
int versionResult = system("osascript /Library/Application\\ Support/Version.scpt");
在 C++ 中,这将返回 1 或 0。
如何让它返回 C++ 中的命令结果?
【问题讨论】:
标签:
c++
shell
command-line
terminal
【解决方案1】:
system 无法做到这一点;如果不使用像Qt 这样的跨平台框架,就没有独立于平台的方法。这看起来像一个 Mac 命令;要在类似 Unix 的 Mac 上执行此操作,您可以使用 popen(),类似
char buffer[100];
FILE * f = popen("osascript /Library/Application\\ Support/Version.scpt", "r");
fgets(buffer, 99, f);
pclose(f);
buffer 将命令的输出作为字符串获取。