从c++;system()命令 如何捕获从命令行运行的PHP脚本的输出并将其存储到C++中的数组中? i、 e

从c++;system()命令 如何捕获从命令行运行的PHP脚本的输出并将其存储到C++中的数组中? i、 e,c++,system,cout,C++,System,Cout,系统无法向您的程序提供输出。您应该将命令输出重定向到一个文件,如php api/getSome.php>somefile,并从程序中读取此文件,或者应该使用适当的函数来提供命令输出,如手册页中的popen: system()通过调用/bin/sh-c命令执行命令中指定的命令 只需使用shell重定向功能将命令的输出转储到文件中: system("php api/getSome.php > output.txt 2> error.txt"); 上面将给出在output.txt中发送

系统
无法向您的程序提供输出。您应该将命令输出重定向到一个文件,如
php api/getSome.php>somefile
,并从程序中读取此文件,或者应该使用适当的函数来提供命令输出,如手册页中的
popen

system()通过调用/bin/sh-c命令执行命令中指定的命令

只需使用shell重定向功能将命令的输出转储到文件中:

 system("php api/getSome.php > output.txt 2> error.txt");
上面将给出在output.txt中发送标准输出和在error.txt中发送错误输出。

传统上,当需要在父进程和子进程之间进行IO时,最好使用popen()。它使用基于C的文件流。它是构成system()的同一低级内部函数(即fork+execl)的包装器,但与system()不同,popen()打开管道并将stdin/out复制到流以进行读写

FILE *p = popen("ping www.google.com", "r");

然后像读取文件一样从中读取。

在这种特殊情况下,我真的希望首先在内存中捕获它以进行字符串匹配。速度在这里是个大问题。获取字符串的进程越少越好。
FILE *p = popen("ping www.google.com", "r");