【问题标题】:Attaching to processes in C附加到 C 中的进程
【发布时间】:2011-11-27 12:06:05
【问题描述】:

我正在实现一个 netcat 克隆,目前需要一种通过网络运行命令行程序的方法。

到目前为止,我的解决方案是执行一个进程并为 STDIN 和 STDOUT 使用管道,然后通过 TCP 来回转发数据。

问题是,我觉得这是一种迂回的做事方式。当我运行 bash 时,提示没有出现,并且我无法使用 ncurses 程序,例如 Vi。

有没有更简单的方法来控制 C 程序的输入和查看程序的输出,或者管道是我最好的选择?

这是我的一段代码(点击一下,很直观):

http://pastebin.com/MjyxFkdu

我在 GNU/Linux 中使用 C。

【问题讨论】:

  • 您的解决方案将提供哪些ssh 没有的功能?
  • 你能澄清你的问题吗?您想从您的 netcat 克隆发送命令,但又希望它立即返回以便您可以再次使用控制台?
  • duskwuff 是正确的,我应该以 telnetd 为例。看起来 pty 就是我要找的东西。看来我只能使用系统调用创建一个。
  • 关于您的评论 Brian Cain,我这样做是为了强迫自己学习,而不是因为我对 SSH 不满意。实际上,我对 SSH 很满意。 :3

标签: c linux


【解决方案1】:

使用管道无法获得正确的终端行为——您需要使用PTY (pseudoterminal) 才能获得正确的结果。

请注意,您要在这里写的基本上是telnetd...

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多