创建命名管道时,如果还指定了FILE_FLAG_OVERLAPPED,PIPE_NOWAIT模式是否会产生影响?

时间:2016-12-01 03:30:23

标签: windows winapi named-pipes

我知道命名管道同步工作时PIPE_WAIT和PIPE_NOWAIT模式之间的区别。文档非常明确。

但是,当命名管道异步工作(使用FILE_FLAG_OVERLAPPED)时,它没有说明这些差异。我发现我的实验没有任何区别。因此,我假设在这种情况下指定PIPE_WAIT或PIPE_NOWAIT没有区别。那是对的吗?

1 个答案:

答案 0 :(得分:0)

不,有区别。如果对ReadFile管道使用异步PIPE_WAIT,并且管道中没有数据,它将返回ERROR_IO_PENDING,并且当数据可用时,I / O请求将完成。如果管道处于PIPE_NO_WAIT模式,ReadFile将返回ERROR_NO_DATA,并且I / O请求会立即完成。