在Windows中区分管道和文件

时间:2009-05-18 17:34:34

标签: windows file pipe handle

在Unix上,一切都是文件,所以你可以使用带有管道,文件,套接字等的文件i / o函数。但是在windows上,你使用的api取决于你拥有的i / o HANDLE的类型。 / p>

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

2 个答案:

答案 0 :(得分:4)

使用GetFileType。检查返回值FILE_TYPE_PIPE

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

答案 1 :(得分:0)

不要试图愚蠢。 叫它。如果你得到一个错误代码,说错了类型的东西......那么你知道。

在尝试查看用户是否有权打开文件时,类似的主体是相关的。它可以尝试完全反向工程并重新实现文件系统通过的逻辑来测试ACL。或者,试着打开它。