我如何 return 从 c 程序到调用它的后台脚本的值?

How can I return a value from a c program to the back script that calls it?

我正在尝试解决一个问题,我希望 bash 脚本调用 c 程序并将 c 程序中的值返回到 bach 脚本并存储在一个变量中。

这里是一个例子(代码写的不是很正确):

Bash 脚本:

$value = ./foo
echo $value

C程序:

int main() {
    //Have a value here that is returned to the variable 'value' in the bash script.
    return 0;
}

这可能吗?

在您的 C 程序中将值打印到标准输出:

printf("%s",value);

printf("%s\n",value);

您的 bash 脚本:

#!/bin/bash

value="$(your_c_program)"
echo "$value"

您可以使用 $? 获取您上次执行的程序的 return 值,或者您可以将该值打印到标准输出然后捕获它。

#include <stdio.h>

int main()
{
    printf("my_value");
    return 0;
}

然后在bash中做

value=$(./my_program)
echo $value

结果将是 my_value

要让您的脚本回显从您的 C 应用程序返回的值,请执行

echo $?

虽然不是 C 题