SetFileApisToANSI 함수(fileapi.h)
파일 I/O 함수가 현재 프로세스에 ANSI 문자 집합 코드 페이지를 사용하게 합니다. 이 함수는 8비트 콘솔 입력 및 출력 작업에 유용합니다.
구문
void SetFileApisToANSI();
반환 값
없음
설명
SetFileApisToANSI에서 코드 페이지를 설정한 파일 I/O 함수는 파일 이름을 허용하거나 반환하는 KERNEL32.DLL 내보낸 함수입니다. SetFileApisToANSI 는 스레드 또는 컴퓨터가 아닌 프로세스당 코드 페이지를 설정합니다.
SetFileApisToANSI 함수는 동일한 파일 I/O 함수 집합이 OEM 문자 집합 코드 페이지를 사용하도록 하는 SetFileApisToOEM 함수를 보완합니다.
8비트 콘솔 함수는 기본적으로 OEM 코드 페이지를 사용합니다. 다른 모든 함수는 기본적으로 ANSI 코드 페이지를 사용합니다. 즉, 콘솔 함수에서 반환된 문자열이 다른 함수에서 올바르게 처리되지 않을 수 있으며 그 반대의 경우도 마찬가지입니다. 예를 들어 FindFirstFileA 함수가 특정 확장된 ANSI 문자를 포함하는 문자열을 반환하고 8비트 콘솔 함수가 OEM 코드 페이지를 사용하도록 설정된 경우 WriteConsoleA 함수는 문자열을 제대로 표시하지 않습니다.
AreFileApisANSI 함수를 사용하여 파일 I/O 함수 집합이 현재 사용 중인 코드 페이지를 확인합니다. SetConsoleCP 및 SetConsoleOutputCP 함수를 사용하여 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 |