How to pass value and run c program in php( web application)

前端 未结 2 514
小蘑菇
小蘑菇 2021-01-13 02:20

I am having big c program.I want execute that function in php and get value

For example

C program

int add( int, int);         
         


        
2条回答
  •  一向
    一向 (楼主)
    2021-01-13 02:56

    I guess the simplest way would be to call your C from PHP, passing the parameters as arguments. On the C side:

    #include 
    #include 
    
    int main(int argc, char *argv[])
    {
        int i = add(atoi(argv[1]), atoi(argv[2]));
        printf("%d\n", i);
        return 0;
    }
    

    (obviously, you should add error checking). On the PHP side:

    $a = ...;
    $b = ...;
    $c = exec("/path/to/sum $a $b");
    

    assuming your C program is called sum.


    Edit: Just adding a comment about the various approaches that have been suggested to you so far:

    • Starting your C program with exec(), as in my answer above, is really the simplest solution. However, it costs you the creation of a new process every time you call your C code, which can be expensive if you do it a lot.

    • A PHP extension spares the process creation and should be more efficient, especially if you are making many calls to your C code and your C code is fast to compute the result.

    • A daemon is more interesting if your C program is slow to startup (long initialization) but can then process queries fast.

自定义标题
段落格式
字体
字号
代码语言
提交回复
热议问题