在 Windows 中区分管道和文件

pal*_*ogt 3 windows file pipe handle

在 Unix 上,一切都是一个文件,因此您可以将文件 i/o 函数与管道、文件、套接字等一起使用。但在 windows 上,您使用的 api 取决于您拥有的 i/o HANDLE 的类型。

我的问题是:给定一个 HANDLE,你如何确定底层类型是什么?例如,我有一个 HANDLE,它要么是真实文件,要么是命名/匿名管道。我想知道是否可以在此 HANDLE 上调用 PeekNamedPipe。

小智 5

使用GetFileType. 检查 的返回值FILE_TYPE_PIPE

http://msdn.microsoft.com/en-us/library/aa364960(VS.85).aspx