EN JA
CATOPEN(3)
CATOPEN(3) FreeBSD Library Functions Manual CATOPEN(3)

名称

catopenメッセージカタログをオープンする

ライブラリ

Standard C Library (libc, -lc)

書式

#include < nl_types.h>

nl_catd
catopen( const char *name, int oflag);

解説

catopen() 関数は、 name によって指定されたメッセージカタログをオープンし、メッセージカタログの記述子を返します。 name に‘/’が含まれている場合、 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 の使用は、 X/Open Portability Guide Issue 4 (“XPG4”) 規格に適合しています。 X/Open Portability Guide Issue 3 (“XPG3”) との互換性のために 0 を指定できます。 oflag が 0 に設定されている場合、 LANG 環境変数がメッセージカタログのロケールを決定します。

メッセージカタログの記述子は、プロセスがそれをクローズするまで、または exec(3) 関数の 1 つの呼び出しが成功するまで、プロセスで有効のままです。

戻り値

成功して終了すれば、 catopen() はメッセージカタログの記述子を返します。そうでない場合には、(nl_catd) -1 が返され、 errno にエラーを示す値が設定されます。

エラー

[ EINVAL]
引数 name が有効なメッセージカタログを指していません。
[ ENAMETOOLONG]
メッセージカタログのパス名全体が 1024 文字を超過しています。
[ ENOENT]
指定されたメッセージカタログが存在しないか、または、 name 引数が空の文字列を指しています。
[ ENOMEM]
十分なメモリが利用可能ではありません。

規格

catopen() 関数は、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。
February 12, 2005 FreeBSD