_open_osfhandle
Asocia un descriptor de archivo en tiempo de ejecución de C con un identificador de archivo del sistema operativo existente.
Sintaxis
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
Parámetros
osfhandle
Identificador de archivo del sistema operativo.
flags
Tipos de operaciones permitidas.
Valor devuelto
Si se realiza correctamente, _open_osfhandle
devuelve un descriptor de archivo en tiempo de ejecución de C. De lo contrario, devuelve -1.
Comentarios
La función _open_osfhandle
asigna un descriptor de archivo en tiempo de ejecución de C. Asocia este descriptor de archivo al identificador de archivo del sistema operativo especificado por osfhandle
. Para evitar una advertencia del compilador, convierta el argumento osfhandle
de HANDLE
a intptr_t
. El argumento flags
es una expresión de entero formada por una o varias de las constantes del manifiesto, definidas en <fcntl.h>
. Puede usar el operador "or" (|
) bit a bit para combinar dos o más constantes de manifiesto a fin de formar el argumento flags
.
Estas constantes de manifiesto se definen en <fcntl.h>
:
Constante | Descripción |
---|---|
_O_APPEND |
Coloca un puntero de archivo al final del archivo antes de cada operación de escritura. |
_O_RDONLY |
Abre el archivo únicamente para leerlo. |
_O_TEXT |
Abre el archivo en modo de texto ANSI (traducido). |
_O_WTEXT |
Abre el archivo en modo Unicode (UTF-16 traducido). |
Con la llamada _open_osfhandle
se transfiere la propiedad del identificador de archivos de Win32 al descriptor del archivo. Para cerrar un archivo abierto mediante _open_osfhandle
, llame a _close
. El identificador de archivos del sistema operativo subyacente también se cierra mediante una llamada a _close
. No llame a la función de Win32 CloseHandle
en el identificador original. Si el descriptor del archivo pertenece a un flujo FILE *
, al llamar a fclose
se cerrará tanto el descriptor del archivo como el identificador subyacente. En este caso, no llame a _close
en el descriptor del archivo ni a CloseHandle
en el identificador original.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
_open_osfhandle |
<io.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.