1

我在 linux 中有一个 ac 程序,它使用 fwrite 读取 php 发送的数据并在 linux 中输出一个字符串。

AJAX

$.ajax({
                type: "POST",
                data: {cmd:"IN"},
                url: "COMMAND.php",
                success: function(data){

    //Get only this string ">" from the stdout of linux and store it to a variable.

                    }
                });

命令文件

<?php

if($_POST['cmd']=="IN"){

$fd = fopen("/tmp/myFIFO","w");
fwrite(fd,"IN");
fclose(fd);

}


?>

C

char buf[255];
while((n = read(fd, buf, sizeof buf - 1)) > 0 ){ //fd is the opened pipe.

buf[n - 1] = '\0';

if(strcmp(buf,"IN")==0){
            printf("%s\n", "FF0023sff344>fdfslldlf");
          }

    }

如何从linux捕获字符串“FF0023sff344>fdfslldlf”到ajax并只获取字符串“>”..?

4

1 回答 1

2

您可能需要与上面所做的工作流程不同的工作流程。如果您需要您的 C 进程继续运行,您应该为它打开一个双向套接字。

为此,您需要考虑使您的 C 程序成为某种套接字服务器。查看listenbindacceptselect开始。

在 PHP 方面,查看sockets函数集合。

或者,使用http://libevent.org/之类的东西使您的 C 程序成为轻量级 http 服务器会更容易一些,然后curl在 php 端使用它来向它发出请求。

于 2013-05-16T12:50:28.120 回答