_get_osfhandle
지정된 파일 설명자와 연결된 운영 체제 파일 핸들을 검색합니다.
구문
intptr_t _get_osfhandle(
int fd
);
매개 변수
fd
기존 파일 설명자입니다.
반환 값
유효한 경우 fd
운영 체제 파일 핸들을 반환합니다. 그렇지 않으면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 실행을 계속할 수 있으면 (-1)이 반환됩니다 INVALID_HANDLE_VALUE
. 또한 잘못된 파일 핸들을 나타내는 <errno
. 결과가 Win32 파일 핸들로 사용될 때 경고를 방지하려면 형식으로 HANDLE
캐스팅합니다.
참고 항목
stdout
스트림과 stderr
연결되지 않은 경우stdin
(예: 콘솔 창이 없는 Windows 애플리케이션에서) 이러한 스트림에 대한 파일 설명자 값은 특수 값 -2에서 _fileno
반환됩니다. 마찬가지로 호출 결과 _fileno
_get_osfhandle
대신 0, 1 또는 2를 파일 설명자 매개 변수로 사용하는 경우 파일 설명자가 스트림과 연결되지 않고 설정errno
되지 않은 경우 특수 값 -2도 반환합니다. 그러나 이 값은 유효한 파일 핸들 값이 아니며 이를 사용하려는 후속 호출은 실패할 가능성이 높습니다.
및 기타 오류 코드에 대한 EBADF
자세한 내용은 , _doserrno
, _sys_errlist
및_sys_nerr
를 참조하세요errno
.
설명
운영 체제(OS) 파일 핸들을 가져온 _get_osfhandle
파일을 닫려면 파일 설명자를 호출 _close
합니다 fd
. 이 함수의 반환 값을 호출 CloseHandle
하지 마세요. 기본 OS 파일 핸들은 파일 설명자가 소유하고 fd
호출될 fd
때 _close
닫힙니다. 파일 설명자가 스트림에서 FILE *
소유하는 경우 해당 FILE *
스트림을 호출 fclose
하면 파일 설명자와 기본 OS 파일 핸들이 모두 닫힙니다. 이 경우 파일 설명자를 호출 _close
하지 마세요.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_get_osfhandle |
<io.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
참고 항목
파일 처리
_close
_creat
, _wcreat
_dup
, _dup2
_open
, _wopen
_open_osfhandle