_get_osfhandle

Belirtilen dosya tanımlayıcısıyla ilişkili işletim sistemi dosya tanıtıcısını alır.

Sözdizimi

intptr_t _get_osfhandle(
   int fd
);

Parametreler

fd
Mevcut bir dosya tanımlayıcısı.

Dönüş değeri

Geçerliyse fd bir işletim sistemi dosya tanıtıcısı döndürür. Aksi takdirde, parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse (-1) döndürür INVALID_HANDLE_VALUE . Ayrıca, geçersiz bir dosya tutamacını belirten olarak EBADFda ayarlarerrno. Sonuç Win32 dosya tanıtıcısı olarak kullanıldığında uyarıyı önlemek için bunu bir HANDLE türe yayınlayın.

Not

stdin, stdoutve stderr bir akışla ilişkilendirilmiyorsa (örneğin, konsol penceresi olmayan bir Windows uygulamasında), bu akışların dosya tanımlayıcı değerleri 'den _fileno -2 özel değeri olarak döndürülür. Benzer şekilde, çağrısının sonucu _filenoyerine dosya tanımlayıcı parametresi olarak 0, 1 veya 2 kullanırsanız, _get_osfhandle dosya tanımlayıcısı bir akışla ilişkilendirilmediğinde ve ayarlanmadığında errno-2 özel değerini de döndürür. Ancak, bu geçerli bir dosya tanıtıcı değeri değildir ve bunu kullanmaya çalışan sonraki çağrılar muhtemelen başarısız olur.

ve diğer hata kodları hakkında EBADF daha fazla bilgi için bkz.errno , _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

İşletim sistemi (OS) dosya tanıtıcısı tarafından _get_osfhandlealınan bir dosyayı kapatmak için, dosya tanımlayıcısını fdçağırın_close. Bu işlevin dönüş değerini hiçbir zaman çağırmayın CloseHandle . Temel işletim sistemi dosya tanıtıcısı, dosya tanımlayıcısının fd sahibidir ve üzerinde fdçağrıldığında _close kapatılır. Dosya tanımlayıcısı bir FILE * akışa aitse, bu FILE * akışta çağrılması fclose hem dosya tanımlayıcısını hem de temel alınan işletim sistemi dosya tanıtıcısını kapatır. Bu durumda, dosya tanımlayıcısını çağırmayın _close .

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Yordam Gerekli başlık
_get_osfhandle <io.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Dosya işleme
_close
_creat, _wcreat
_dup, _dup2
_open, _wopen
_open_osfhandle