_open_osfhandle
Associe un descripteur de fichier runtime C à un handle de fichier de système d’exploitation existant.
Syntaxe
int _open_osfhandle (
intptr_t osfhandle,
int flags
);
Paramètres
osfhandle
Handle de fichier du système d’exploitation.
flags
Types d’opération autorisés.
Valeur retournée
En cas de réussite, _open_osfhandle
retourne un descripteur de fichier Runtime C. Sinon, retourne -1.
Notes
La _open_osfhandle
fonction alloue un descripteur de fichier runtime C. Il associe ce descripteur de fichier au handle de fichier du système d’exploitation spécifié par osfhandle
. Pour éviter un avertissement du compilateur, convertissez l’argument osfhandle
HANDLE
en intptr_t
. L’argument flags
est une expression entière formée à partir d’une ou plusieurs constantes de manifeste définies dans <fcntl.h>
. Vous pouvez utiliser l’opérateur « ou » au|
niveau du bit pour combiner deux constantes manifestes ou plus pour former l’argument flags
.
Ces constantes de manifeste sont définies dans <fcntl.h>
:
Constant | Description |
---|---|
_O_APPEND |
Positionne un pointeur de fichier à la fin du fichier avant chaque opération d’écriture. |
_O_RDONLY |
Ouvre le fichier pour un accès en lecture uniquement. |
_O_TEXT |
Ouvre le fichier en mode texte ANSI (traduit). |
_O_WTEXT |
Ouvre le fichier en mode Unicode (UTF-16 traduit). |
L’appel _open_osfhandle
transfère la propriété du handle de fichier Win32 au descripteur de fichier. Pour fermer un fichier ouvert à l’aide _open_osfhandle
de , appelez _close
. Le handle de fichier de système d’exploitation sous-jacent est également fermé par un appel à _close
. N’appelez pas la fonction CloseHandle
Win32 sur le handle d’origine. Si le descripteur de fichier appartient à un FILE *
flux, un appel pour fclose
fermer le descripteur de fichier et le handle sous-jacent. Dans ce cas, n’appelez _close
pas le descripteur de fichier ou CloseHandle
sur le handle d’origine.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
_open_osfhandle |
<io.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.