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.
For more compatibility information, see Compatibility.