프로그램에서 어떤 환경 변수에 접근할 수 있는지는 OS마다 다르다. 흔히 제공되는 환경 변수로 사용자 홈 디렉터리를 가리키는 "HOME", 실행 파일에 대한 표준 경로 모음인 "PATH", 언어에 대한 설정을 담은 "LANG" 또는 "LC_ALL" 등이 있다.
언어 또는 로케일(locale)C 설정도 프로그램을 실행하는 환경에서 중요한 부분을 차지한다. 프로그램을 처음 구동하면 C에서 로케일을 정규값인 "C"로 설정한다. 이 설정은 숫자, 날짜, 시간을 미국 방식으로 표현한다.
현재 로케일 값을 설정하거나 확인하려면 locale.h에서 제공하는 setlocale 함수를 사용하면 된다.
char* setlocale(int category, char const locale[static 1]);
C 표준에서는 "C" 말고도 공백 스트링인 ""라는 locale 값도 정의하고 있다. 이 값은 로케일을 시스템 디폴트 값으로 설정할 때 사용한다. category 인수는 언어 환경의 전체 또는 일부를 가리킬 때 사용한다. 표 8-14는 여기에 사용할 수 있는 값과 이 값에 영향을 받는 C 라이브러리 부분을 개략적으로 정리한 것이다. 플랫폼 종속적인 카테고리도 추가할 수 있다.
▼ 표 8-14 setlocale 함수에서 사용할 수 있는 카테고리
LC_COLLATE |
strcoll과 strxfrm을 이용한 스트링 비교 |
LC_CTYPE |
문자 분류 및 처리 함수(8.4절 참조) |
LC_MONETARY |
화폐 서식 정보, localeconv |
LC_NUMERIC |
서식 적용 I/O를 위한 소수점 문자, localeconv |
LC_TIME |
strftime(8.5절 참조) |
LC_ALL |
위 항목 전체 |