Associates a C run-time file descriptor with an existing operating system file handle.
int _open_osfhandle ( intptr_t osfhandle, int flags );
Operating system file handle.
Types of operations allowed.
If successful, _open_osfhandle returns a C run-time file descriptor. Otherwise, it returns -1.
The _open_osfhandle function allocates a C run-time file descriptor. It associates this file descriptor with the operating system file handle specified by osfhandle. To avoid a compiler warning, cast the osfhandle argument from HANDLE to intptr_t. The flags argument is an integer expression formed from one or more of the manifest constants defined in <fcntl.h>. You can use the bitwise-OR operator ( | ) to combine two or more manifest constants to form the flags argument.
These manifest constants are defined in <fcntl.h>:
|_O_APPEND||Positions a file pointer to the end of the file before every write operation.|
|_O_RDONLY||Opens the file for reading only.|
|_O_TEXT||Opens the file in text (translated) mode.|
|_O_WTEXT||Opens the file in Unicode (translated UTF-16) mode.|
The _open_osfhandle call transfers ownership of the Win32 file handle to the file descriptor. To close a file opened by using _open_osfhandle, call _close. The underlying OS file handle is also closed by a call to _close. Don't call the Win32 function CloseHandle on the original handle. If the file descriptor is owned by a FILE * stream, then a call to fclose closes both the file descriptor and the underlying handle. In this case, don't call _close on the file descriptor or CloseHandle on the original handle.
By default, this function's global state is scoped to the application. To change this, see Global state in the CRT.
For more compatibility information, see Compatibility.