我試圖運行控制檯應用程序並讀/寫它的標準I/O。問題是,當這個應用程序通過WriteFile(GetStdHandle(...))寫入輸出時,我用管道上的ReadFile成功讀取了它的輸入。fprintf vs WriteFile寫入管道:無法從所有管道讀取
當目標應用程序使用fprintf時,ReadFile會阻止,直到目標應用程序退出,在這種情況下,它會一次返回整個輸出。當目標應用程序阻塞(比如說,通過fgets())時,ReadFile塊。
我正在使用標準管道重定向:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx。
爲什麼這種奇怪的行爲,我如何解決它?
Dup of http://stackoverflow.com/questions/1716296/why-does-printf-not-flush-after-the-call-unless-a-newline-is-in-the-format-strin –