如何捕获我在命令行运行的php脚本的输出并将其存储到c ++中的数组? 即。
system('php api/getSome.php');
答案 0 :(得分:1)
system
无法为您的计划提供输出。您应该将命令输出重定向到文件,例如在php api/getSome.php > somefile
中,并从程序中读取此文件,或者您应该使用可以为您提供命令输出的正确函数,如popen
。
答案 1 :(得分:1)
来自手册页:
system()通过调用/ bin / sh -c命令执行命令中指定的命令。
只需使用shell重定向工具将命令的输出转储到文件中:
system("php api/getSome.php > output.txt 2> error.txt");
以上内容将发送 output.txt 中的标准输出和 error.txt 中的错误输出。
答案 2 :(得分:1)
传统上,当您需要在父进程和子进程之间进行IO时,首选popen()。它使用基于C的FILE流。它是同一个低级内在函数的包装器,也构成了system(),即fork + execl,但与system()不同,popen()打开一个管道并将stdin / out复制到一个流中进行读写。
FILE *p = popen("ping www.google.com", "r");
然后从文件中读取。