嗨,根据
this post,unbuffer通过伪终端(pty)连接命令,这使得系统将其视为交互式进程,因此不使用任何stdout缓冲.
我想在Windows上使用此功能.我可以知道Windows上的unbuffer程序相当吗?谢谢.
您描述的行为是使用I / O运行时库的典型应用程序.默认情况下,大多数运行时库会检查句柄是否是字符模式设备(如控制台),如果是,则不会执行任何缓冲. (理想情况下,运行时库会以与控制台相同的方式处理管道,但似乎大多数都没有.)
原文链接:https://www.f2er.com/windows/365351.html我不知道有什么明智的方法来欺骗这样的应用程序,以为它在写入管道时正在写入控制台.
原则上,如果您知道需要多少数据,则可以使用console API functions为应用程序创建控制台以进行写入,然后从控制台读取输出.但是你不能用Java做到这一点,你需要编写一个C应用程序来为你做.
类似地,原则上应该可以编写一个等同于Unix伪终端的设备驱动程序,一个像管道一样工作,但报告自己是一个字符模式设备.但是编写设备驱动程序需要特定的专业知识,并且必须进行数字签名,因此除非现有产品存在,否则这种方法可能不可行.