C 로컬리제이션 함수

C localization functions

컴퓨팅에서 C 로컬리제이션 기능은 기본 로컬리제이션 루틴을 구현하는 C 프로그래밍 언어의 함수 그룹이다.[1][2]기능은 특정 로케일에 적응하기 위해 다국어 프로그램에서 사용된다.특히 숫자와 화폐 표시 방식을 수정할 수 있다.이러한 설정은 C 표준 라이브러리의 입력/출력 기능의 거동에 영향을 미친다.[3]

함수 개요

C 지역화 함수와 유형은 local.h(C++[4][5]의 클로칼 헤더)에 정의된다.

함수 설명
세트로케일 현재 C 로케일을 설정하고 가져오기
로케일콘프 현재 로케일의 숫자 및 통화 형식 세부 정보 반환

비판

C 표준 국산화 기능은 국산화 상태가 글로벌하게 저장되기 때문에 비판을 받는다.이것은 주어진 프로그램에서 로케일을 포함하는 모든 작업이 한 번에 하나의 로케일만 사용할 수 있다는 것을 의미한다.그 결과, 둘 이상의 로케일을 사용하는 프로그램을 구현하는 것은 매우 어렵다.[6]

이 함수는 저장된 데이터를 파일이나 다른 프로그램에 쓰는 데 자주 사용되는 printf/scanf/strtod의 동작을 변경한다.그 결과, 한 로케일에 저장된 파일은 다른 로케일에서 읽을 수 없거나, "number ends in comma"와 같은 가정 때문에 전혀 읽을 수 없게 된다.대부분의 대규모 소프트웨어는 로케일을 "C"(또는 다른 고정 값)로 강제하여 이러한 문제를 해결하도록 한다.

#include <stdio.h> #include <stdlib.h> #include <locale.h>  인트로 본래의(공허하게 하다) {     /* 로케일은 이 전에 "C"로 설정된다.이 통화로 정해졌다. 판독 환경 변수를 기준으로 "현재 로케일"로 이동: */     세트로케일(LC_ALL, "");      경시하다 구조상의 lconv * 경시하다 전류로케일 = 로케일콘프();      활자화하다("현재 로케일에서 기본 통화 기호는 %s입니다.\n",         전류로케일->convert_properties);      돌아오다 EXIT_SUPTION; } 

참고 항목

참조

  1. ^ ISO/IEC 9899:1999 specification (PDF). p. 204, § 7.11 Localization.
  2. ^ Prata, Stephen (2004). C primer plus. Sams Publishing. Appendix B, Section V: The Standard ANSI C Library with C99 Additions. ISBN 0-672-32696-5.
  3. ^ "ISO/IEC 9899:201x" (PDF). 12 April 2011. p. 181. Archived from the original (PDF) on 29 March 2018.
  4. ^ "locale.h". utas.edu.au. infosys. Retrieved 14 September 2011.
  5. ^ "openbsd/src". GitHub. Retrieved 9 April 2018.
  6. ^ "The Standard C Locale and the Standard C++ Locales". Rogue Wave Software, Inc. 1996.