CATOPEN(3)

명칭
catopen - 메세지 카탈로그의 오픈

프로그램 라이브러리
libc

서식
<nl_types.h> nl_catd catopen(const char *name, int oflag)

해설
catopen() 함수는, name 에 의해 지정된 메세지 카탈로그를 오픈해, 메세지 카탈로그의 기술자를 돌려줍니다. name 에 1 개(살)의 ‘/’ 하지만 포함되어 있는 경우에는, name (은)는 메세지 카탈로그의 풀 패스명을 지정합니다. 그렇지 않은 경우에는, 환경 변수의 값 NLSPATH 하지만 이하의 치환과 함께 사용됩니다.

%N  name 인수의 값입니다.

%L  LANG 환경 변수 또는 LC_MESSAGES 카테고리 (아래와 같은 참조)의 값입니다.

%l  LANG 환경 변수 또는 LC_MESSAGES 카테고리의 언어 요소입니다.

%t  LANG 환경 변수 또는 LC_MESSAGES 카테고리의 지역 요소입니다.

%c  LANG 환경 변수 또는 LC_MESSAGES 카테고리의 코드 세트 요소입니다.

%%  단일의 % 캐릭터입니다.

하늘의 캐릭터 라인은 미정도리의 값에 치환됩니다.

NLSPATH 그리고 정의되는 패스명의 템플릿은, 코론 (‘’:) 그리고 단락지어집니다. 선두의 또는 2 개의 인접하는 코론은, %N 를 지정한 것과 동등합니다.

oflag 인수가 NL_CAT_LOCALE 정수로 설정되어 있는 경우에는, LC_MESSAGES 로케일 카테고리가 메세지 카탈로그를 오픈하기 위해서 사용됩니다. NL_CAT_LOCALE 의 사용은, xpg4 표준에 적합하고 있습니다. xpg3 (와)과의 호환성을 위해서(때문에) 0 을 지정할 수가 있습니다. oflag 하지만 0 으로 설정되어 있을 때에는, LANG 환경 변수가 메세지 카탈로그의 로케일을 결정합니다.

메세지 카탈로그의 기술자는, 프로세스가 그것을 클로우즈 할 때까지, 또는 1 개(살)의 exec(3) 함수의 호출의 성공까지, 유효하게 남습니다.

반환값
성공해 완료했을 때에는, catopen() (은)는 메세지 카탈로그의 기술자를 돌려줍니다. 그렇지 않은 경우에는, (nl_catd) -1 가 돌려주어 errno 하지만 그 에러를 나타내기 위해서(때문에) 설정됩니다.

에러

[EINVAL]
    인수 name 하지만 유효한 메세지 카탈로그를 가리키고 있지 않습니다.

[ENAMETOOLONG]
    메세지 카탈로그의 패스명 전체가 1024 캐릭터를 초과하고 있습니다.

[ENOENT]
    그 이름의 메세지 카탈로그가 존재하지 않습니다. 또는, name 인수가 하늘의 캐릭터 라인을 가리키고 있습니다.

[ENOMEM]
    충분한 메모리가 유효하지는 않습니다.

관련 항목
gencat(1), catclose(3), catgets(3), setlocale(3)

표준
catopen() 함수는, xpg4 에 적합하고 있습니다.