국제 언어 환경 설명서

libc의 국제화 API

Solaris 9 환경은 두 개의 API 세트를 제공합니다.

와이드캐릭터는 논리적 엔티티로서 고정폭의 단위입니다. 따라서, 멀티바이트 문자를 사용할 때처럼 계속해서 문자의 경계를 추적해야 할 필요가 없습니다.

프로그램이 파일로부터 입력을 받을 때 fscanf(3S) 및 fwscanf(3S)와 같은 입력 함수로 직접 파일의 멀티바이트 데이터를 넓은 문자 프로세스 코드로 변환하거나 입력 후 mbtowc(3C) 및 mbsrtowcs(3C)를 사용하여 변환할 수 있습니다. 넓은 문자 형식에서 멀티바이트 문자 형식으로 출력 데이터를 변환하려면 fwprintf(3S) 및 fprintf(3S)와 같은 출력 함수를 사용하거나 출력 후 wctomb(3C) 및 wcsrtombs(3C)와 같은 변환 함수를 적용하십시오.

이 장의 나머지 표는 Solaris 9 제품에 포함된 국제화 API에 대해 설명합니다.

다음 표는 libc의 메시지 처리 함수 API를 설명합니다.

표 2–1 libc의 메시지 처리 함수

라이브러리 루틴 

설명 

catclose()

메시지 카탈로그 닫기 

catgets()

프로그램 메시지 읽기 

catopen()

메시지 카탈로그 열기 

dgettext()

도메인을 지정하여 메시지 카탈로그에서 메시지 얻기 

dcgettext()

도메인과 범주를 지정하여 메시지 카탈로그에서 메시지 얻기 

textdomain()

현재 도메인을 설정 및 질의 

bindtextdomain()

메시지 도메인에 대한 경로 바인드 

gettext()

메시지 데이터베이스에서 텍스트 문자열 검색 

다음 표는 libc의 코드 변환 기능 API를 설명합니다.

표 2–2 libc의 코드 변환

라이브러리 루틴 

설명 

iconv()

코드 변환 

iconv_close()

변환 설명자 할당 해제 

iconv_open()

변환 설명자 할당 

다음 표는 libc의 정규 표현식 API를 설명합니다.

표 2–3 libc의 정규 표현식

라이브러리 루틴 

설명 

regcomp()

정규식 컴파일 

regexec()

정규식 매칭 실행 

regerror()

오류 코드에서 오류 메시지로의 매핑을 제공 

regfree()

regcomp()가 할당한 사용 가능 메모리

fnmatch()

파일 이름 또는 경로 이름 일치 

다음 표는 libc의 넓은 문자 함수 API를 설명합니다.

표 2–4 libc의 넓은 문자 클래스

라이브러리 루틴 

설명 

wctype()

문자 클래스 정의 

wctrans()

문자 매핑 정의 

다음은 libc의 로켈 수정 및 질의를 나열합니다.

표 2–5 libc의 로켈 수정 및 질의

라이브러리 루틴 

설명 

setlocale()

프로그램의 로켈 수정 및 질의 

다음 표는 libc의 로켈 데이터 질의를 나열합니다.

표 2–6 libc의 로켈 데이터 질의

라이브러리 루틴 

설명 

nl_langinfo()

현재 로켈의 언어 및 문화 정보 얻기 

localeconv()

현재 로켈의 통화 및 숫자 형식 정보 얻기 

다음 표는 libc의 문자 분류 함수 API를 설명합니다.

표 2–7 libc의 문자 분류 및 자역

라이브러리 루틴 

설명 

isalpha()

문자가 알파벳인가? 

isupper()

문자가 대문자인가? 

islower()

문자가 소문자인가? 

isdigit()

문자가 숫자인가? 

isxdigit()

문자가 16진수인가? 

isalnum()

문자가 알파벳인가 숫자인가? 

isspace()

문자가 공백인가? 

ispunct()

문자가 구두점인가? 

isprint()

문자가 인쇄 가능한가? 

iscntrl()

문자가 제어 문자인가? 

isascii()

문자가 ASCII 문자인가? 

isgraph()

문자가 가시 문자인가? 

isphonogram()

넓은 문자가 표음 문자인가? 

isideogram()

넓은 문자가 표의 문자인가? 

isenglish()

영어 알파벳의 넓은 문자가 추가 코드 세트에 왔는가? 

isnumber()

넓은 문자가 추가 코드 세트의 숫자인가? 

isspecial()

특수 넓은 문자가 추가 코드 세트에 있는가? 

iswalpha()

넓은 문자가 알파벳인가? 

iswupper()

넓은 문자가 대문자인가? 

iswlower()

넓은 문자가 소문자인가?  

iswdigit()

문자가 숫자인가?  

iswxdigit()

넓은 문자가 6진수인가?  

iswalnum()

넓은 문자가 알파벳 문자인가 숫자인가? 

iswspace()

넓은 문자가 빈 공백인가?  

iswpunct()

넓은 문자가 구두점인가? 

iswprint()

넓은 문자가 인쇄 가능 문자인가? 

iswgraph()

넓은 문자가 가시 문자인가? 

iswcntrl()

넓은 문자가 제어 문자인가? 

iswascii()

넓은 문자가 ASCII 문자인가? 

toupper()

소문자를 대문자로 변환합니다. 

tolower()

대문자를 소문자로 변환합니다. 

towupper()

소문자 넓은 문자를 대문자로 변환합니다. 

towlower()

대문자 넓은 문자를 소문자로 변환합니다. 

towctrans()

넓은 문자 매핑 

다음 표는 libc의 문자 조합 함수 API를 설명합니다.

표 2–8 libc의 문자 조합

라이브러리 루틴 

설명 

strcoll()

문자열 조합 

strxfrm()

비교를 위해 문자열 변환 

wcscoll()

넓은 문자열 조합 

wcsxfrm()

비교를 위해 넓은 문자열 변환 

다음 표는 libc의 통화 처리 함수 API를 설명합니다.

표 2–9 libc의 통화 형식

라이브러리 루틴 

설명 

localeconv()

현재 로켈의 통화 형식 정보 얻기 

strfmon()

통화 값을 문자열 표현으로 변환 

다음 표는 libc의 날짜 및 시간 형식을 설명합니다.

표 2–10 libc의 날짜 및 시간 형식

라이브러리 루틴 

설명 

getdate()

사용자 형식 날짜 및 시간을 변환 

strftime()

날짜 및 시간을 문자열 표현으로 변환 %u 변환 함수는 X/Open CAE Specification, System Interfaces and Headers, Issue 4, 버전 2를 준수합니다. 이 함수는 10진수 [1,7]로 주일을 표현하고 1이 현재 월요일을 나타냅니다.

strptime()

날짜 및 시간 변환 

다음 표는 libc의 멀티바이트 처리 함수 API를 설명합니다.

표 2–11 libc의 멀티바이트 처리

라이브러리 루틴 

설명 

btowc()

단일바이트를 넓은 문자로 변환 

mbrlen()

문자의 바이트 수 얻기(다시 시작 가능) 

mbsinit()

변환 객체 상태 결정 

mbrtowc()

문자를 넓은 문자 코드로 변환(다시 시작 가능) 

mbsrtowcs()

문자열을 넓은 문자열로 변환(다시 시작 가능) 

mblen()

문자의 바이트 수 얻기 

mbtowc()

문자를 넓은 문자 코드로 변환 

mbstowcs()

문자열을 넓은 문자열로 변환 

다음 표는 libc의 넓은 문자 및 문자열 처리를 설명합니다.

표 2–12 libc의 넓은 문자 및 문자열 처리

라이브러리 루틴 

설명 

wcsncat()

넓은 문자를 길이 n으로 연결

wsdup()

넓은 문자열 중복 

wcscmp()

넓은 문자열 비교 

wcsncmp()

넓은 문자를 길이 n과 비교

wcscpy()

넓은 문자열 복사 

wcsncpy()

넓은 문자를 길이 n으로 복사

wcschr()

넓은 문자열에서 문자 찾기 

wcsrchr()

오른쪽부터 넓은 문자열에서 문자 찾기 

wcslen()

 넓은 문자열 길이 얻기

wscol()

넓은 문자열의 표시 너비 반환 

wcsspn()

다른 넓은 문자열에 있는 하나의 넓은 문자열 범위 반환 

wcscspn()

다른 넓은 문자열에 없는 하나의 넓은 문자열 범위 반환 

wcspbrk()

다른 넓은 문자열에 없는 하나의 넓은 문자열 포인터 반환 

wcstok()

넓은 문자열을 통해 토큰 이동 

wscwcs()

넓은 문자열에서 문자열 찾기 

wcstombs()

넓은 문자열을 멀티바이트 문자열로 변환 

wctomb()

넓은 문자를 멀티바이트 문자로 변환 

wcwidth()

넓은 문자의 열 위치 수 결정 

wcswidth()

넓은 문자열의 열 위치 수 결정 

wctob()

넓은 문자를 단일바이트로 변환 

wcrtomb()

넓은 문자를 문자로 변환(다시 시작 가능) 

wcstol()

넓은 문자열을 긴 정수로 변환 

wcstoul()

넓은 문자열을 부호없는 긴 정수로 변환 

wcstod()

넓은 문자열을 배정도로 변환 

wcsrtombs()

넓은 문자열을 문자열로 변환(다시 시작 가능) 

wcscat()

넓은 문자열 연결 

다음 표는 libc의 형식화된 넓은 문자 입출력을 설명합니다.

표 2–13 libc의 형식화된 넓은 문자 입출력

라이브러리 루틴 

설명 

  

wsprintf()

형식에 따라 넓은 문자열 생성 

wsscanf()

형식화된 입력 변환 

fwprintf()

형식화된 넓은 문자 출력 인쇄 

fwscanf()

형식화된 넓은 문자 입력 변환 

wprintf()

형식화된 넓은 문자 출력 인쇄 

wscanf()

형식화된 넓은 문자 입력 변환 

swprintf()

형식화된 넓은 문자 출력 인쇄 

swscanf()

형식화된 넓은 문자 입력 변환 

vfwprintf()

stdarg 인자 목록의 넓은 문자 형식화된 출력

vswprintf()

stdarg 인자 목록의 넓은 문자 형식화된 출력

이 표는 libc의 넓은 문자열 함수 API를 설명합니다.

표 2–14 넓은 문자열libc

라이브러리 루틴 

설명 

wscasecmp()

넓은 문자열을 비교하고 대소문자 차이를 무시 

wsncasecmp()

코드 문자열 작업 프로세스 

wcsstr()

넓은 문자열 부속 문자열 찾기 

wmemchr()

메모리의 넓은 문자 찾기 

wmemcmp()

메모리의 넓은 문자 비교 

wmemcpy()

메모리의 넓은 문자 복사 

wmemmove()

겹친 영역이 있는 메모리의 넓은 문자 복사 

wmemset()

메모리의 넓은 문자 설정 

다음 표는 libc의 넓은 문자 입출력을 설명합니다.

표 2–15 libc의 넓은 문자 입출력

라이브러리 루틴 

설명 

fgetwc()

스트림에서 멀티바이트 문자를 얻어 넓은 문자로 변환 

getwchar()

stdin에서 멀티바이트 문자를 얻어 넓은 문자로 변환

fgetws()

스트림에서 멀티바이트 문자열을 얻어 넓은 문자로 변환 

getws()

stdin에서 멀티바이트 문자열을 얻어 넓은 문자로 변환

fputwc()

넓은 문자열을 멀티바이트 문자로 변환하여 스트림에 넣기 

fwide()

스트림 방향 설정 

putwchar()

넓은 문자열을 멀티바이트 문자로 변환하여 stdin에 넣기

fputws()

넓은 문자를 멀티바이트 문자열로 변환하여 스트림에 넣기 

putws()

넓은 문자를 멀티바이트 문자열로 변환하여 stdin에 넣기

ungetwc()

넓은 문자를 입력 스트림으로 푸시백