从php脚本执行共享库文件

时间:2013-07-06 06:41:12

标签: php c++ exec php-extension

我创建了共享库client.so。当我执行它时,执行main()函数,该函数从用户读取字符串并调用函数ch=foo(buffer);

Main.cpp在这里:

#include<stdio.h>
#include "foo.h"

    int main()
    {
        char buffer[1024];
        char *ch;
        printf("Client : \n");
        printf("Enter sentence to send to the server (press enter)\n");
        fgets(buffer, 1024, stdin);
        ch=foo(buffer);

        return 0;
    }

使用exec函数我们可以执行c程序。但是在PHP脚本中,如果我为此执行此操作,我将无法从用户读取字符串。

我希望用户可以在浏览器中输入字符串,然后将该字符串传递给main函数(可能使用argv,argc-但我不知道该怎么做)。然后main函数应该像往常一样调用foo(缓冲区)等等。

foo(buffer)将返回存储在char * ch中的数组,我想用php脚本接收。

我有两个选择: 1]从用户的文本框中读取字符串并将其传递给具有main()函数的共享库文件。哪个被执行并在php脚本中返回“ch” 2]执行共享库文件(就像我们在终端./client中所做的那样)并在运行时给出字符串输入并运行整个程序。但我不知道这是否可能。     #包括     #include“foo.h”

    int main()
    {
        char buffer[1024];
        char *ch;
        printf("Client : \n");
        printf("Enter sentence to send to the server (press enter)\n");
        fgets(buffer, 1024, stdin);
        ch=foo(buffer);

        return 0;
    }

任何人都可以给我一些关于如何实现这一目标的建议!

1 个答案:

答案 0 :(得分:0)

设置权限后,执行以下方式将解决问题:

$a=exec('/home/technoworld/Videos/LinSocket/client "critic good"'); 

无需像我犯错误那样给./client

客户端是我想要执行的可执行文件,&#34;评论家好&#34;是要通过的论据!

相关问题