在c ++中获取终端中命令运行的返回值

时间:2011-09-08 03:12:15

标签: c++ shell command-line terminal

现在这是我的代码。此命令将执行一个脚本,并且如果它在终端中运行,则应该在Mac上返回Safari浏览器版本。

int versionResult = system("osascript /Library/Application\\ Support/Version.scpt");

在C ++中,这将返回1或0.

如何让它在C ++中返回命令的结果?

1 个答案:

答案 0 :(得分:3)

你不能用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将命令的输出作为字符串。

相关问题