gpt4 book ai didi

c - 如何将值从 shell 脚本传递到 C 程序

转载 作者:行者123 更新时间:2023-11-30 15:16:04 26 4
gpt4 key购买 nike

我正在尝试使用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);
}

最佳答案

第一个问题:

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

第二个问题:

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

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

关于c - 如何将值从 shell 脚本传递到 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33255126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com