Distinguere un tubo da un file in Windows
Domanda
In Unix, tutto è un file, in modo da poter utilizzare il file di I / O funzioni con tubi, file, prese, ecc Ma sulle finestre, l'API da utilizzare dipende dal tipo di I / O MANEGGIARE avete.
La mia domanda è: dato una maniglia come si fa a determinare quale tipo sottostante è? Per esempio, ho una maniglia che è sia vero file, o un named pipe / anonimo. Mi piacerebbe sapere se PeekNamedPipe può essere chiamato su questa maniglia.
Soluzione
Usa GetFileType
. Verificare la presenza di un valore di ritorno di FILE_TYPE_PIPE
.
http://msdn.microsoft.com/ it-it / library / aa364960 (VS.85) aspx
Altri suggerimenti
Senza cercare di essere sciocco. Chiamalo. Se si ottiene un codice di errore indietro dicendo che il suo il tipo sbagliato di cosa ... poi si sa.
Un principio simile è relevent quando si cerca di vedere se l'utente dispone dei diritti per aprire un file. E 'possibile per cercare di ingegnere a pieno inversa e re-implementare la logica del file system passa attraverso per testare le ACL. Oppure, semplicemente cercare di aprirlo.