SetFileApisToOEM 함수(fileapi.h)

프로세스에 대한 파일 I/O 함수가 OEM 문자 집합 코드 페이지를 사용하게 합니다. 이 함수는 8비트 콘솔 입력 및 출력 작업에 유용합니다.

구문

void SetFileApisToOEM();

반환 값

없음

설명

SetFileApisToOEM에 의해 코드 페이지가 설정된 파일 I/O 함수는 파일 이름을 수락하거나 반환하는 KERNEL32.DLL 내보낸 함수입니다. SetFileApisToOEM 은 스레드 또는 컴퓨터가 아닌 프로세스당 코드 페이지를 설정합니다.

SetFileApisToOEM 함수는 SetFileApisToANSI 함수로 보완되므로 동일한 파일 I/O 함수 집합이 ANSI 문자 집합 코드 페이지를 사용합니다.

8비트 콘솔 함수는 기본적으로 OEM 코드 페이지를 사용합니다. 다른 모든 함수는 기본적으로 ANSI 코드 페이지를 사용합니다. 즉, 콘솔 함수에서 반환된 문자열은 다른 함수에서 올바르게 처리되지 않을 수 있으며 그 반대의 경우도 마찬가지입니다. 예를 들어 FindFirstFileA 함수가 특정 확장된 ANSI 문자를 포함하는 문자열을 반환하고 8비트 콘솔 함수가 OEM 코드 페이지를 사용하도록 설정된 경우 WriteConsoleA 함수가 문자열을 제대로 표시하지 않습니다.

AreFileApisANSI 함수를 사용하여 파일 I/O 함수 집합이 현재 사용 중인 코드 페이지를 확인합니다. SetConsoleCPSetConsoleOutputCP 함수를 사용하여 8비트 콘솔 함수에 대한 코드 페이지를 설정합니다.

코드 페이지 비호환성 문제를 해결하려면 콘솔 애플리케이션에 유니코드를 사용하는 것이 가장 좋습니다. 유니코드를 사용하는 콘솔 애플리케이션은 8비트 콘솔 함수를 사용하는 애플리케이션보다 훨씬 더 다양합니다. 해당 솔루션을 제외하고 콘솔 애플리케이션은 SetFileApisToOEM 함수를 호출하여 파일 I/O 함수 집합이 ANSI 문자 집합 문자열이 아닌 OEM 문자 집합 문자열을 사용하도록 할 수 있습니다. SetFileApisToANSI 함수를 사용하여 해당 함수를 ANSI 코드 페이지로 다시 설정합니다.

명령줄을 처리할 때 콘솔 애플리케이션은 유니코드 형식의 명령줄을 가져온 다음 관련 문자-OEM 함수를 사용하여 OEM 양식으로 변환해야 합니다. 명령줄 기본 함수의 argv 매개 변수에 있는 배열에는 이 경우 ANSI 문자 집합 문자열이 포함되어 있습니다.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 Yes
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 fileapi.h(Windows.h, WinBase.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

AreFileApisANSI

파일 관리 함수

FindFirstFileA

SetConsoleCP

SetConsoleOutputCP

SetFileApisToANSI

WriteConsoleA