相关疑难解决方法(0)

在重定向的stdout管道上禁用缓冲(Win32 API,C++)

我正在使用Win32生成一个进程CreateProcess,设置hStdOutput和创建的管道句柄的hStdError属性.我有两个线程读取管道,等待数据可用(或完成的过程,此时它检查在终止线程之前没有剩余数据). 随着数据变得可用,我将输出写入有效的大文本框.STARTUPINFOCreatePipe

正在发生的事情是输出被缓冲,因此缓慢运行的进程只会在文本框中抛出大量数据,但不会"发生".

我不确定它是否正在进行缓冲管道,或者与重定向有关.

有没有办法将管道设置为无缓冲,或者以尽快发送stdout的方式启动进程?

我正在使用一个测试应用程序进行测试

Here is line one
(waits one second)
Here is line two
(waits one second)
... etc
Run Code Online (Sandbox Code Playgroud)

windows winapi redirect stdout

14
推荐指数
1
解决办法
8042
查看次数

标签 统计

redirect ×1

stdout ×1

winapi ×1

windows ×1