将(void)系统的输出保存到变量(C)中
这是我的密码:将(void)系统的输出保存到变量(C)中,c,system,exe,C,System,Exe,这是我的密码: #include<stdlib.h> #include<stdio.h> int main() { (void)system("cat json.json | ./jq.exe '.location | {street, city}'"); return 0; } #包括 #包括 int main() { (void)系统(“cat json.json |./jq.exe.位置|{街道,城市}”); 返回0; } 我想把(void)系统的输出保存到一
#include<stdlib.h>
#include<stdio.h>
int main()
{
(void)system("cat json.json | ./jq.exe '.location | {street, city}'");
return 0;
}
#包括
#包括
int main()
{
(void)系统(“cat json.json |./jq.exe.位置|{街道,城市}”);
返回0;
}
我想把(void)系统的输出保存到一个变量中,但我该怎么做呢 标准C对此没有真正的解决方案;只有变通办法。一种方法是在system()内部使用shell重定向,将输出写入文件,然后使用
fopen()
、fread()
和friends()读取该文件。您必须创建一个脚本,并将系统调用的输出重定向到该管道,然后从管道读取数据——这就是调用的基本功能,这意味着您只需将system
调用转换为popen
调用,然后从文件描述符读取要填充的变量
您可以找到关于如何在堆栈溢出上使用popen的示例,如这里的示例 可能重复的