Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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_osfhandlede , 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.