3

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

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

4

2 回答 2

5

使用GetFileType. 检查返回值FILE_TYPE_PIPE.

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

于 2009-05-18T20:15:46.017 回答
0

不想装傻。称它为。如果你收到一个错误代码,说它是错误类型的东西......那么你就知道了。

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

于 2009-05-18T20:07:03.977 回答