匿名管道的ReadFile函数

ReadFile function for an anonymous pipe

本文关键字:ReadFile 函数 管道      更新时间:2023-10-16

我有一个关于Windows管道的问题。ReadFile功能手册如下:

如果匿名管道正在使用,并且写句柄已经关闭,当ReadFile试图使用管道对应的读句柄读取时,该函数返回FALSE, GetLastError返回ERROR_BROKEN_PIPE。

让我们假设从管道中读取每秒钟发生一次。从上一个读操作开始,发生了以下事情:写到管道操作和写处理程序的关闭。根据上面的手册,该函数返回错误-读取操作失败。我的问题是未读取的数据会发生什么?我怎样才能得到它们呢?

正如您可能期望的那样,在数据被放入管道之后,您可以将其读出,直到您到达数据的末尾,然后读取将失败。