Bagikan melalui


_open_osfhandle

Mengaitkan pendeskripsi file run-time C dengan handel file sistem operasi yang ada.

Sintaks

int _open_osfhandle (
   intptr_t osfhandle,
   int flags
);

Parameter

osfhandle
Handel file sistem operasi.

flags
Jenis operasi yang diizinkan.

Nilai hasil

Jika berhasil, _open_osfhandle mengembalikan pendeskripsi file run-time C. Jika tidak, ia mengembalikan -1.

Keterangan

Fungsi ini _open_osfhandle mengalokasikan deskriptor file run-time C. Ini mengaitkan deskriptor file ini dengan handel file sistem operasi yang ditentukan oleh osfhandle. Untuk menghindari peringatan kompilator, transmisikan osfhandle argumen dari HANDLE ke intptr_t. Argumen flags adalah ekspresi bilangan bulat yang terbentuk dari satu atau beberapa konstanta manifes yang ditentukan dalam <fcntl.h>. Anda dapat menggunakan operator "atau" (|) bitwise untuk menggabungkan dua atau beberapa konstanta manifes untuk membentuk flags argumen.

Konstanta manifes ini didefinisikan dalam <fcntl.h>:

Terus-menerus Deskripsi
_O_APPEND Memposisikan penunjuk file ke akhir file sebelum setiap operasi tulis.
_O_RDONLY Membuka file untuk dibaca saja.
_O_TEXT Membuka file dalam mode teks ANSI (diterjemahkan).
_O_WTEXT Membuka file dalam mode Unicode (diterjemahkan UTF-16).

Panggilan _open_osfhandle mentransfer kepemilikan handel file Win32 ke pendeskripsi file. Untuk menutup file yang dibuka dengan menggunakan _open_osfhandle, panggil _close. Handel file OS yang mendasar juga ditutup oleh panggilan ke _close. Jangan panggil fungsi CloseHandle Win32 pada handel asli. Jika pendeskripsi file dimiliki oleh FILE * aliran, maka panggilan untuk fclose menutup pendeskripsi file dan handel yang mendasar. Dalam hal ini, jangan panggil _close pendeskripsi file atau CloseHandle pada handel asli.

Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.

Persyaratan

Rutin Header yang diperlukan
_open_osfhandle <io.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Lihat juga

Penanganan file
_get_osfhandle