Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:捕获已运行进程的输出(纯C!)_C_Linux_Process_Stdout_Capture - Fatal编程技术网

Linux:捕获已运行进程的输出(纯C!)

Linux:捕获已运行进程的输出(纯C!),c,linux,process,stdout,capture,C,Linux,Process,Stdout,Capture,我的情况如下:我有很多小发明(非常接近路由器,不完全如此,但无论如何这是不相关的);他们正在运行一个基于MIPS的Linux发行版 为了控制它们,可以在那里远程登录(通过串行端口),并向一个类似bash的交互式shell发出命令,然后shell会写回一些输出。shell的输入和输出都连接到/dev/ttyAS0 现在,我想自动化所有这些,也就是说,编写一个程序,在gizmo内部运行,是一个在某个端口上侦听的小型服务器,它将把任何命令传递给所述外壳,捕获外壳的输出,并将其转发回与服务器联系的任何人

我的情况如下:我有很多小发明(非常接近路由器,不完全如此,但无论如何这是不相关的);他们正在运行一个基于MIPS的Linux发行版

为了控制它们,可以在那里远程登录(通过串行端口),并向一个类似bash的交互式shell发出命令,然后shell会写回一些输出。shell的输入和输出都连接到/dev/ttyAS0

现在,我想自动化所有这些,也就是说,编写一个程序,在gizmo内部运行,是一个在某个端口上侦听的小型服务器,它将把任何命令传递给所述外壳,捕获外壳的输出,并将其转发回与服务器联系的任何人

一:


1) 可以安装(小,您是否尝试过使用脚本驱动串行端口?我可能不会尝试在设备上插入更智能的代理,而只是尝试驱动现有接口


如果你真的想把它放在设备上,你可以看看源代码,或者了解它们是如何与TTY交互的。

你可能想看看。它可能需要一些调整来适应你的系统,虽然

事实上kermit是我解决这个问题的首选方案,我已经尝试过了,而且它是然而,整个练习都是为了工作(我们使用了一堆标准的、低成本的小发明,并将它们以一种非设计的方式组合在一起工作)要求是这个盒子由SOAP控制。正如我上面所说的,我能够交叉编译一个小型SOAP服务器并让它控制shell;问题是读取shell的输出。也许我可以直接从/dev/ttyAS0中读取(其他任何东西都不应该输出到那里)但是我如何从原始终端读取数据呢?谢谢,伙计!实际上reptyr只是i386,但它使用ptrace的方式给了我很多启发!问题解决了,我现在有了最终的程序:)