La función fopen
devuelve un puntero a una estructura FILE
, que debe considerarse un valor opaco, sin tener en cuenta su contenido o significado.¿Cómo obtengo el archivo HANDLE de la estructura fopen FILE?
En Windows, el tiempo de ejecución de C es un contenedor de la API de Windows, y la función fopen
se basa en la función CreateFile
. La función CreateFile
devuelve un HANDLE
, que es utilizado por otra API de Windows.
Ahora, necesito usar la API de Windows en el interior de una biblioteca que usa fopen
y FILE*
. Entonces, ¿hay alguna manera de obtener el HANDLE
de la estructura FILE
? Como esto es específico del compilador, me refiero a la biblioteca de tiempo de ejecución de MSVC.
Entiendo que esto sería un hack feo, no portátil, y que podría romperse si Microsoft cambia el formato interno de FILE
... pero estoy desarrollando en un sistema cerrado (es decir, en un sistema integrado con Windows CE) y la refacturación de la biblioteca sería difícil y consumiría mucho tiempo.
Muy buena pregunta, que se ocupó de éste hace a mí mismo más de 2 años. –