【问题标题】:How do I get shell output from system()?如何从 system() 获取 shell 输出?
【发布时间】:2013-12-03 21:26:57
【问题描述】:

我正在调用 system() 来触发命令。我可以在 Xcode 控制台中看到命令的输出——但我不知道如何在字符串中捕获它。

我尝试为 system() 调用本身设置一个字符串,但该字符串设置为 0。

这是我写的代码:

string node = "/usr/local/bin/node ~/Desktop/chromix-master/script/chromix.js ";
string commandStr = node + "url";
char command[1024];
strcpy(command,commandStr.c_str());
system(command);

具体来说,我正在尝试使用 smblott's Chromix utility 在 chrome 中获取当前焦点选项卡的 URL。

【问题讨论】:

标签: c++ unix


【解决方案1】:

不要使用system(),而是使用popen() 打开一个管道,您可以从中读取程序输出。

FILE *p = popen(command, "r");
// ... use p as a file
pclose(p);

【讨论】:

  • 太好了,谢谢。你认为你能指出我将文件读入字符串的正确方向吗?
猜你喜欢
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多