2011-10-12 15 views
9

¿Es posible extraer el archivo HANDLE del descriptor de archivo de Windows o de FILE *?extraer el archivo HANDLE del descriptor de archivo de Windows o de FILE *

Como ejemplo, FILE * se implementa sobre los descriptores de archivos y, a su vez, se implementan descriptores de archivos (en Windows) en la parte superior de HANDLEs. Se puede extraer un FD de FILE * utilizando la función fileno() documentada. La extracción de HANDLE de FD podría ser más piratería o más documentada ...

+3

Hmm ¿por qué las personas votarían para cerrar una pregunta legítima? – Andrei

+0

Algunas personas tienen prejuicios contra las preguntas básicas. –

+0

@Andrei: Fue un poco difícil de leer originalmente. Ponga un poco más de esfuerzo en la ortografía en el futuro, y las personas son más propensas a esforzarse en encontrarle una respuesta. –

Respuesta

14

Sí. Ver _get_osfhandle.

+0

Eso es bueno. Gracias. – Andrei

+5

El inverso - ['_open_osfhandle'] (http://msdn.microsoft.com/en-us/library/bdts1c9x%28v=vs.110%29.aspx) - * Asocia un descriptor de archivo en tiempo de ejecución C con un identificador de archivo de sistema operativo existente. * –

+0

Y parece que el resultado de _get_osfhandle se debe convertir en una MANIJA para que las cosas funcionen. Sin el elenco obtengo mensajes de error (de gcc 6.3 en msys 2 compilando C++): error: conversión inválida de 'intptr_t {aka long long int}' a 'HANDLE {aka void *}' –

Cuestiones relacionadas