다음을 통해 공유


_open_osfhandle

C 런타임 파일 설명자를 기존 운영 체제 파일 핸들과 연결합니다.

구문

int _open_osfhandle (
   intptr_t osfhandle,
   int flags
);

매개 변수

osfhandle
운영 체제 파일 핸들입니다.

flags
허용되는 연산의 유형입니다.

반환 값

정상적으로 실행되면 _open_osfhandle은 C 런타임 파일 설명자를 반환합니다. 그렇지 않으면 -1을 반환합니다.

설명

함수는 _open_osfhandle C 런타임 파일 설명자를 할당합니다. 이 파일 설명자를 .에서 지정 osfhandle한 운영 체제 파일 핸들과 연결합니다. 컴파일러 경고를 방지하려면 인수를 osfhandle .로 HANDLE 캐스팅합니다 intptr_t. 인수는 flags 에 정의된 매니페스트 상수 중 하나 이상에서 형성된 정수 식입니다 <fcntl.h>. 비트 "or" (|) 연산자를 사용하여 둘 이상의 매니페스트 상수와 결합하여 인수를 flags 구성할 수 있습니다.

이러한 매니페스트 상수는 다음에서 정의됩니다.<fcntl.h>

상수 설명
_O_APPEND 모든 쓰기 작업 전에 파일 포인터를 파일 끝에 배치합니다.
_O_RDONLY 읽기 전용으로 파일을 엽니다.
_O_TEXT ANSI 텍스트(번역) 모드에서 파일을 엽니다.
_O_WTEXT 파일을 유니코드(변환된 UTF-16) 모드에서 엽니다.

호출은 _open_osfhandle Win32 파일 핸들의 소유권을 파일 설명자로 전송합니다. 를 사용하여 _open_osfhandle연 파일을 닫려면 .를 호출합니다 _close. 기본 OS 파일 핸들도 호출을 _close통해 닫힙니다. 원래 핸들에서 Win32 함수 CloseHandle 를 호출하지 마세요. 파일 설명자가 스트림에 의해 FILE * 소유되는 경우 호출은 fclose 파일 설명자와 기본 핸들을 모두 닫습니다. 이 경우 파일 설명자 또는 CloseHandle 원래 핸들에서 호출 _close 하지 마세요.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
_open_osfhandle <io.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

파일 처리
_get_osfhandle