如何从system()获得shell输出?

时间:2013-12-03 21:26:58

标签: c++ unix

我正在调用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获取当前焦点标签的网址。

1 个答案:

答案 0 :(得分:1)

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

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