다음을 통해 공유


_get_osfhandle

지정된 파일 설명자와 연결된 운영 체제 파일 핸들을 검색합니다.

구문

intptr_t _get_osfhandle(
   int fd
);

매개 변수

fd
기존 파일 설명자입니다.

반환 값

유효한 경우 fd 운영 체제 파일 핸들을 반환합니다. 그렇지 않으면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 실행을 계속할 수 있으면 (-1)이 반환됩니다 INVALID_HANDLE_VALUE . 또한 잘못된 파일 핸들을 나타내는 <a0/a0>로 설정합니다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