外壳包装器句柄/执行交互式命令管道C++ UNIX
Shell Wrapper Handle / Execute Interactive Commands Pipes C++ UNIX
我的项目是用C/C++为我的家用Unix PC创建一个小的Remote Shell。它的组件是一个服务器,它通过套接字连接向客户端发送命令,该客户端执行命令并发送输出。
现在我想执行像"login"这样的命令来在客户端上验证自己。 有没有办法处理交互式命令,如"登录","python3" - Python3 Shell ???
我试图用 PIPES 处理这个问题,所以要管道((、fork(( 进程并捕获 {STDIN;标准输出;STDERR},但我无法与交互式命令交互,因为它们在完成之前会阻塞。 我只是设法执行"正常"命令,如"ls","arp -a","ifconfig"......
任何想法、网站、代码片段、建议???
感谢您的支持, 问候,来自大卫
您可以使用所谓的伪终端来执行此操作。便携式功能是posix_openpt
首先,对于 shell,您不需要服务器来处理命令和发送响应。
要执行命令: 首先,您必须检查该命令是内置命令还是 UNIX 命令。 如果它是一个 Unix 命令,你必须创建一个指向 dir 根二进制命令的路径(例如:python3 的路径是/usr/bin/python3(,之后你做一个分叉,在子进程中你可以使用 execve 来执行命令,在父进程中你做一个等待来捕获信号代码。 否则,如果命令是内置命令,则只需调用您创建的函数即可。 你可以去检查我的github帐户,我用C编码的2个shell,minishell1:https://github.com/la-montagne-epitech/Minishell1 和42Sh(更完整(
相关文章:
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- Gstreamer 管道从命令 lne 到 c 代码
- 外壳包装器句柄/执行交互式命令管道C++ UNIX
- 我如何使用此程序管道多个命令?C++
- 如何将 Python 脚本通过管道传输到命令(boost::p rogram::options)
- 递归执行C 中的Linux管道命令
- 具有读写功能的 UNIX 管道系统可执行"ls -la"命令
- C++ microshell,输入一个命令并使用fork(),dup(),pipe()将其通过管道传输到进程。只是我没有得到我想要的结果
- 如何使用 CreateProcess 或 ShellExecute 来执行管道命令
- CPP中的管道内部(AWK)系统命令
- C++ 管道字符串到邮件命令
- 使用QProcess进行管道(或命令链接)
- gnuplot cpp无法将命令馈送到管道
- 带有命令提示符的命名管道
- 重复调用 shell 命令,通过管道捕获标准输出
- 命令行程序如何支持管道参数
- 将文本信息从 Windows 命令解释器 (cmd.exe) 管道到字符数组
- 如果命令行有多个管道,如何获取用于调用程序的完整命令行
- 系统/管道调用更改传递给执行的命令中的特殊字符