我正在实现一个netcat克隆,目前需要一种通过网络运行命令行程序的方法。
到目前为止,我的解决方案是执行一个进程并为STDIN和STDOUT使用管道,然后通过TCP来回转发数据。
问题是,我觉得这是一种全面的做事方式。当我运行bash时,提示没有显示,我无法使用ncurses程序,如Vi。
是否有更简单的方法来控制输入并在C中查看程序的输出,或管道是我最好的选择?
这是我的一部分代码(点击它,非常直观):
我在GNU / Linux中使用C.
答案 0 :(得分:2)
使用管道无法获得正确的终端行为 - 您需要使用PTY (pseudoterminal)来获得正确的结果。
请注意,您在此处撰写的内容基本上是telnetd
...