将Windows线程的STDIN和STDOUT重定向到命名管道?

时间:2013-06-20 18:24:25

标签: windows multithreading stdout named-pipes io-redirection

我正在Ncat中实现Lua功能,这是我的Google Summer of Code分配。作为项目的一部分,我需要将标准的输入/输出重定向机制移植到尽可能与POSIX版本兼容。

在POSIX版本中,进程在一个地方分叉,子进程将其标准输入和标准输出绑定到POSIX管道。然后,执行脚本的一段代码启动,并且那里的所有printf被重定向到父进程中的相关函数。如何在Windows代码中模拟此行为?

我需要的是一种将线程的标准输出和标准输入重定向到使用CreatePipe创建的管道的方法。 Here是当前Ncat的Windows代码,here是我正在尝试完成的功能(grep for NCAT_LUA)以查找相关代码)。该项目可以在Windows上构建 - 说明为here。请随意尝试,并抱歉不提供较小的测试用例。

我真的很感激任何指向相关功能/系统调用的文档,我可以使用的替代方法,代码示例或项目源代码链接的指针,这些项目采用任何类似问题的解决方案。

0 个答案:

没有答案