Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Associa um descritor de arquivo do rutime do C a um identificador de arquivo do sistema operacional existente.
Sintaxe
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
Parâmetros
osfhandle
Identificador de arquivo do sistema operacional.
flags
Tipos de operações permitidas.
Valor retornado
Se for bem-sucedido, _open_osfhandle retornará um descritor de arquivo de tempo de execução C. Caso contrário, ele retornará -1.
Comentários
A função _open_osfhandle aloca um descritor de arquivo do runtime do C. Ela associa esse descritor de arquivo ao identificador de arquivo do sistema operacional especificado por osfhandle. Para evitar um aviso do compilador, converta o argumento osfhandle de HANDLE para intptr_t. O argumento flags é uma expressão inteira formada por uma ou mais constantes de manifesto definidas no <fcntl.h>. Você pode usar o operador bit a bit "ou" (|) para combinar duas ou mais constantes de manifesto para formar o argumento flags.
As constantes de manifesto são definidas no <fcntl.h>:
| Constante | Descrição |
|---|---|
_O_APPEND |
Posiciona um ponteiro de arquivo no final do arquivo, antes de cada operação de gravação. |
_O_RDONLY |
Abre o arquivo para somente leitura. |
_O_TEXT |
Abre o arquivo no modo de texto ANSI (traduzido). |
_O_WTEXT |
Abre o arquivo no modo Unicode (convertido em UTF-16). |
A chamada de _open_osfhandle transfere a propriedade do identificador de arquivo do Win32 para o descritor de arquivo. Para fechar um arquivo aberto com _open_osfhandle, chame _close. O identificador de arquivo do sistema operacional subjacente também é fechado por uma chamada para _close. Não chame a função CloseHandle do Win32 no identificador original. Se o descritor de arquivo pertencer a um fluxo FILE *, uma chamada para fclose fechará o descritor de arquivo e o identificador subjacente. Nesse caso, não chame _close no descritor de arquivo nem CloseHandle no identificador original.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Requisitos
| Rotina | Cabeçalho necessário |
|---|---|
_open_osfhandle |
<io.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.