【发布时间】:2023-03-11 23:21:01
【问题描述】:
我想将 C 程序调用的 bash 脚本的输出保存到 C 程序中声明的变量中。我搜索并尝试使用system成功调用脚本,我尝试了这个,但它不起作用:
char* a;
system("a=`ls`");
printf("%s",a);
【问题讨论】:
-
bash 变量与您在 C 应用程序中定义的任何变量完全没有关系。
-
您分配给与您的 C 变量无关的 shell 变量。您将需要创建一个管道并将孩子的 STDOUT 设置为该管道的写入端。这意味着您将无法使用
system -
一种方法,虽然很麻烦,但是将脚本输出到文件中。然后,在脚本退出后,C 程序打开该文件进行输入并读入脚本的输出。类似于:system("ls > /tmp/LS_Output");文件 * pLSO = fopen("LS_Output", "r");