我正在尝试集成一个从stdin读取的小型Win32 C++程序,并将解码结果(〜128 kbytes)写入输出流.
我把整个输入读入缓冲区
while (std::cin.get(c)) { }
Run Code Online (Sandbox Code Playgroud)
将整个输出写入stdout后.
当我从命令行运行应用程序时,一切正常test.exe < input.bin > output.bin
,但是这个小应用程序应该从Python运行.
我希望Python subprocess.communicate
应该被使用,文档说:
与流程交互:将数据发送到stdin.从stdout和stderr读取数据,直到达到文件结尾.等待进程终止.
因此communicate()
,在等待我的应用程序完成之前,请等到文件结束 - 当我的应用程序退出时,是否应该发生EOF?或者我应该明确地做fclose(stderr)和fclose(stdout)吗?