这是我的代码:
#include<stdlib.h>
#include<stdio.h>
int main()
{
(void)system("cat json.json | ./jq.exe '.location | {street, city}'");
return 0;
}
我想将(void)系统的输出保存到变量中但是我该怎么做呢?
答案 0 :(得分:1)
您必须创建一个pipe并将系统调用的输出重定向到该管道,然后从管道中读取数据 - 这就是popen调用基本上所做的事情,表示您应该只将system
调用转换为popen
调用,然后从文件描述符中读取要填充的变量。
你可以在这里找到关于如何在堆栈溢出上使用popen的例子; linux command executing by popen on C code
答案 1 :(得分:0)
标准C没有为此提供真正的解决方案;只有解决方法。一种方法是在system()中使用shell重定向,将输出写入文件,然后使用fopen()
,fread()
和朋友读取该文件。