_open_osfhandle
Связывает дескриптор файла времени выполнения C с существующим дескриптором файлов операционной системы.
Синтаксис
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
Параметры
osfhandle
Дескриптор файлов операционной системы.
flags
Разрешенные типы операций.
Возвращаемое значение
В случае успешного выполнения функция _open_osfhandle
возвращает дескриптор файла времени выполнения C. Иначе возвращается значение -1.
Замечания
Функция _open_osfhandle
выделяет дескриптор файла времени выполнения C. Он связывает этот дескриптор файла с дескриптором файлов операционной системы, указанным в osfhandle
файле. Чтобы избежать предупреждения компилятора, приведите osfhandle
аргумент из HANDLE
intptr_t
. Аргумент flags
представляет собой целочисленное выражение, сформированное из одной или нескольких констант манифеста, определенных в <fcntl.h>
. Для формирования аргумента можно использовать побитовый оператор "или" () для|
объединения двух или более констант манифеста flags
.
Эти константы манифеста определены в <fcntl.h>
:
Константа | Description |
---|---|
_O_APPEND |
Помещает указатель файла в конец файла перед каждой операцией записи. |
_O_RDONLY |
Открывает файл только для чтения. |
_O_TEXT |
Открывает файл в режиме перевода текста ANSI. |
_O_WTEXT |
Открывает файл в режиме Юникода (с преобразованием UTF-16). |
Вызов _open_osfhandle
передает права владения дескриптором файла Win32 дескриптору. Чтобы закрыть файл, открытый с помощью _open_osfhandle
вызова, вызовите _close
. Базовый дескриптор OS также закрывается вызовом _close
. Не вызывайте функцию CloseHandle
Win32 в исходном дескрипторе. Если дескриптор файла принадлежит FILE *
потоку, вызов fclose
закрытия дескриптора файла и базового дескриптора. В этом случае не вызывайте _close
дескриптор файла или CloseHandle
исходный дескриптор.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок |
---|---|
_open_osfhandle |
<io.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.