如何将值从shell脚本传递给C程序

时间:2015-10-21 09:04:24

标签: c shell

我正在尝试使用C语言中的system()调用shell脚本来修改文件并执行可执行文件并在另一个目录(而不是C工作目录)中获取一些输出。如何将shell脚本中的值传递给主C程序。提前谢谢!

#define shell "\
#/bin/bash \n\
cd home/path \n\
"input modification" \n\
./ exe \n\ #output a parameter b in the file out
b=$(cat <out) \n\
echo "b" \n\
"
void main()
{
 system(shell);
 printf("b=d%",b);
}

1 个答案:

答案 0 :(得分:1)

第一个问题:

最好的方法是创建一个包含shell脚本的临时文件并执行它。例如,您可以通过 tmpnam / creat创建来获取文件名,创建文件并打开它。然后,您必须使用shell脚本指令填充其内容,并在修改其执行权限后使用system执行它(请参阅chmod)。

第二个问题:

要从子进程接收数据,您需要通过写入/读取文件或使用管道来建立某种通信。可以使用popen代替system轻松建立管道。

最后,不要忘记删除所有临时对象。