gpt4 book ai didi

c++ - 如何在同一线程中从 Windows 中的多个管道读取

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:45 25 4
gpt4 key购买 nike

在我的程序中,我有连接到子进程的 stdout 和 stderr 流的保存管道(即在主进程中,我正在从这个流中读取数据)。但是当其中之一没有任何内容可读时,我的程序挂起。有没有办法不使用线程来解决这个问题。如果在 x 毫秒期间没有任何内容可读,我还希望所有子进程都被杀死。

在 unix 中 select() + non_blocking read 解决了这两个问题。但是 Windows 呢?

最佳答案

您可以在 Windows 中使用类似的方法。使用 OVERLAPPED 结构,您可以对管道发出异步 I/O。然后在具有超时的关联事件句柄上使用 WaitForMultipleObjects(这是选择模拟)。参见 this有关选项的概述。

关于c++ - 如何在同一线程中从 Windows 中的多个管道读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5297994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com