【发布时间】:2013-02-10 20:45:24
【问题描述】:
有没有办法通过网络完全控制终端。例如,我有一个用 C 编写的服务器和客户端,我想向服务器(本例中的服务器是一台 linux 计算机)发送一个类似 rm file 或 cd directory 的命令,并将终端输出返回给客户端。我目前正在使用ls 使用popen(),但它不能更改目录或执行其他复杂命令。有没有更好的方法来做到这一点,也许使用fork() pipe() 和其他函数来使用任何命令并从终端获取完整输出。
【问题讨论】:
-
我不知道您为项目所做的具体权衡和假设。但如果我要做这样的事情,我可能只会要求程序使用“ssh”来安全地登录并运行命令。例如:“ssh remote-server '/bin/ls'”。
-
@MultimediaMike 基本上我想通过网络获得 linux 终端的精确副本。比如我可以执行
ls之类的命令,它会将结果发送给客户端,或者cat > file,服务器和客户端将监听输入并根据您输入的内容创建一个文件等。 -
@alexis 这是最吸引人的项目,我很乐意让它发挥作用。
-
听起来不错,那么我的建议是选择一个方面来实现(大概是网络),其余的使用标准设施。
-
@alexis 我已经完成了联网,但是我不知道如何去终端控制部分从终端获取输出。