_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 EBADF
da 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
, stdout
ve 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 _fileno
yerine 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_errlist
ve _sys_nerr
.
Açıklamalar
İşletim sistemi (OS) dosya tanıtıcısı tarafından _get_osfhandle
alı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