【问题标题】: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 将命令的输出作为字符串获取。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-22
    • 2016-11-17
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多