我知道命名管道同步工作时PIPE_WAIT和PIPE_NOWAIT模式之间的区别。文档非常明确。
但是,当命名管道异步工作(使用FILE_FLAG_OVERLAPPED)时,它没有说明这些差异。我发现我的实验没有任何区别。因此,我假设在这种情况下指定PIPE_WAIT或PIPE_NOWAIT没有区别。那是对的吗?
答案 0 :(得分:0)
不,有区别。如果对ReadFile
管道使用异步PIPE_WAIT
,并且管道中没有数据,它将返回ERROR_IO_PENDING
,并且当数据可用时,I / O请求将完成。如果管道处于PIPE_NO_WAIT
模式,ReadFile
将返回ERROR_NO_DATA
,并且I / O请求会立即完成。