我在Windows上的C程序中使用的封闭源代码库中的密码提示函数将提示写入stdout (句柄1),并将任何错误消息写入stderr (句柄2)。
现在,我希望能够使用普通的重定向操作符重定向我的函数产生的输出。
根据这,句柄3-9“由应用程序单独定义”。在我看来,我可以在我的程序中使用其中之一,然后使用正常的重定向操作符(例如,类似于myprogram.exe 3| otherprogram.exe)。
我如何在我的C代码中做到这一点?
发布于 2011-03-26 17:22:40
在Windows上?如果您使用posix兼容性库,您可以使用'dup2‘强制使用文件描述符3,我不能保证cmd.exe会知道您在说什么。
从根本上讲,在这里,您看到的是Windows上的一点Unix/Linux嫉妒。小整数描述符数的概念是一个基本的Unix/Linux概念。这不是窗户的特点。cmd.exe知道如何处理0、1和2这一事实很可能是错位的Unix程序员的一种方便,而这些程序并没有被推广到其他数字。
https://stackoverflow.com/questions/5443130
复制相似问题