Unix では、すべてがファイルであるため、パイプ、ファイル、ソケットなどでファイル I/O 関数を使用できます。しかし、Windows では、使用する API は、使用する I/O HANDLE のタイプによって異なります。
私の質問は: HANDLE が与えられた場合、基になる型が何であるかをどのように判断しますか? たとえば、実ファイルまたは名前付き/匿名パイプの HANDLE があります。この HANDLE で PeekNamedPipe を呼び出せるかどうかを知りたいです。
を使用しGetFileType
ます。の戻り値を確認してくださいFILE_TYPE_PIPE
。
http://msdn.microsoft.com/en-us/library/aa364960(VS.85).aspx
ばかげようとせずに。あれを呼べ。間違ったタイプのエラー コードが返された場合は、わかります。
ユーザーがファイルを開く権限を持っているかどうかを確認しようとすると、同様のプリンシパルが関係します。ACL をテストするためにファイル システムが通過するロジックを完全にリバース エンジニアリングして再実装することは可能です。または、開いてみてください。