如何从Unix shell脚本调用C函数?

时间:2015-03-19 18:26:56

标签: c shell

我有一些C代码,我创建了一个库(共享对象更具体)。如果我想在shell脚本中调用此代码的特定函数,我该怎么做?我不想修改C代码,只需使用shell进行测试。

2 个答案:

答案 0 :(得分:4)

  1. 创建一个简单的程序,它是C函数的包装器。

  2. 从shell调用该程序。

  3. 假设你有一个功能

    void foo(int arg1, char* arg2);
    

    包装器程序的main函数将是:

    int main(int argc, char** argv)
    {
       // Add the necessary checks to make sure
       // you have the required arguments.
       int arg1 = atoi(argv[1]);
       int arg2 = argv[2]);
       foo(arg1, arg2);
    }
    

答案 1 :(得分:3)

bashshcsh等常见shell中没有内置功能。唯一的方法是编写一个包含此函数(或函数)的可执行文件,并从脚本中调用它。此外,您的可执行文件可能会收到参数,告知要调用哪个函数。