javascript - 我如何从 linux 的 stdout 读取数据到 ajax 并获得某个字符串?

标签 javascript jquery c ajax

我在 linux 中有一个 c 程序,它使用 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

<?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 并只获取字符串“>”..?

最佳答案

您可能想要一个与上述不同的工作流程。如果你需要你的 C 进程保持运行,你应该为它打开一个双向套接字。

要做到这一点,你需要考虑让你的 C 程序成为某种类型的套接字服务器。查看 listenbindaccept,然后选择开始。

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

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

关于javascript - 我如何从 linux 的 stdout 读取数据到 ajax 并获得某个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587802/

相关文章:

C:处理多个管道时 write() 的行为很奇怪

javascript - 为什么 `int(0) and boolean` 返回 `int(0)` 而不是 `boolean(false)` ?

javascript - jQuery 仅应用于单个按钮,而不是它的所有实例

javascript - 在 Highcharts 上绘制自定义线条

c - 在 C 语言中,为什么数组的地址等于它的值?

c - 如何区分union的内容

javascript - 根据搜索字段值触发按钮上的工具提示

javascript - 如何在 JavaScript 中发现一些数学错误

javascript - 将元素拖动到可排序后切换停止工作

Jquery:更改第一个单词颜色跨度问题