从shell脚本返回多个值到c程序

时间:2013-08-20 09:34:46

标签: c shell struct return-value

我从c程序调用shell脚本。我希望这个脚本返回多个值,我想存储在我的c程序结构中。比如说'ac'调用'a.sh',我想'a.sh'返回要存储在变量'x'和'y'中的值,它们是'a.c'中struct's'的一部分。 ”。

2 个答案:

答案 0 :(得分:2)

除了进程具有的退出状态的单个整数(通常限制为8位)之外,您不能从shell脚本“返回”值(假设现在是类Unix系统)。

您通常所做的是解释外部程序的标准输出,您可以使用popen()轻松读入C程序以运行shell脚本。

您可以使用此方法传输任意数量的数据。

答案 1 :(得分:1)

不是最优雅的解决方案(但非常快速且易于实现),但您始终可以从shell脚本生成输出文件,然后从C程序解析该文件。这样做的好处是,您可以在C程序的执行之间存储shell脚本的输出值,如果这些输出值不是每次都改变,则非常有用。