我有2个Windows控制台应用程序,从标准input读取和写入标准输出。 我想假设我没有任何的源代码(实际上我通常有其中之一的源代码)。
我希望将一个标准输出引导到另一个的标准input,反之亦然,从而允许通信(目标是允许两个玩特定游戏的程序相互竞争)。
如何才能做到这一点? 我愿意做一些C / C ++编程或其他需要的东西。
奥伦。
C标准库中包含了什么?
XOPEN_SOURCE和信号处理
在Windows Embedded Standard上通过批量或类似方式设置Internet时间服务器
Windows标准文件位置
便携式的方式来实现ls的-v标志(即按版本sorting)?
URL中是否允许冒号?
在Java位置写入的Linux守护进程
什么是横幅命令的处理?
boost :: filesystem :: path和fopen()
要获得循环重定向,您可以编写一个调用两个可执行文件的@R_502_6267@,并管理每个进程的输入和输出流的接线。 每对连接的流(来自每个程序的输入流和输出流)将需要一个线程来从输出流中提取数据并将其推送到输入流中。 所以,你将需要2个线程,因为有2组输入/输出流对。
以下是连接各种流的步骤:
创建两个缓冲区,B1和B2。
将P1输入连接到缓冲器B1的输入侧,将P1输出到缓冲器B2的输出侧。
将P2输入连接到缓冲器B2的输入侧,将P2输出连接到缓冲器B1的输出侧。 (注意,这个B1 / B2与上面的P1连接相反。)
缓冲区是活动线程,从输入端读取并写入输出端。
缓冲区将不得不检测输入端的流结束,并相应地关闭输出端。 当双方都关闭时,运行缓冲区的线程可以退出。
您必须将这两个进程转换为父进程的子进程,这将在两个进程之间传递消息,并且必须编写父进程。
有很多语言可以解决这个问题。就我个人而言,我会用Python中的子进程模块来解决这个问题。 这基本上是一个围绕_popen()的封装,可以用C / C ++来访问,但如果Google的快速搜索是任何指标,那么比使用Python更容易学习Python。 如果你了解Ruby,那么Ruby有一个类似的库。
在任何情况下,我认为使用套接字将是比使用stdin和stdout更干净和更可靠的方法,如果这是一个选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。