【发布时间】:2014-01-28 16:47:44
【问题描述】:
什么是相当于 Unix 管道的 Windows (Win32) 命令行:
myprog myarg | cat >out.dat
请注意,我想要一个管道,以测试myprog可以成功写入管道,所以请不要将其简化为:
myprog myarg >out.dat
我猜是这样的
myprog myarg | copy /b con out.dat
可以,但我没有要检查的 Windows 机器。
请注意,生成的数据是二进制的,它包含所有可能的字节值 0 .. 255,并且所有这些值都必须保持原样,无需任何转换。
【问题讨论】:
-
我认为将重定向输出写入管道和文件在技术上没有任何区别。
-
@Mark Ransom:不过,我想写信给管道,只是为了 100% 确保它正常工作。
-
这就是我想告诉你的——如果它正确地写入文件 100%,它也会正确地写入管道 100%。没有办法可以工作,但另一个不行,因为 Windows 本身会处理细节。您的程序没有发现任何差异。
-
我知道你认为它是这样工作的,但我也想自己尝试一下,因为管道发生了一些奇怪的事情,我想调试它。
-
@Mark:可能存在差异,具体取决于代码的作用。例如,尝试重新定位句柄将在文件上工作,但在管道上失败(或者,我怀疑,被默默地忽略)。可能还有更微妙的情况。