如何从system()获得shell输出

How do I get shell output from system()?

本文关键字:获得 shell 输出 system      更新时间:2023-10-16

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

我尝试为系统()调用本身设置一个字符串,但字符串被设置为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的Chromix实用程序获取chrome中当前关注标签的URL。

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

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