名 前
catopen, catclose − メ ッ セ ー ジ カ タ ロ グ の オ ー プ ン /ク ロ ー ズ
書 式
#include <nl_types.h>
nl_catd catopen(const char *name, int flag);
int catclose(nl_catd catalog);
説 明
関 数 catopen() は メ ッ セ ー ジ カ タ ロ グ を オ ー プ ン し 、 カ タ ロ グ デ ィ ス ク リ プ タ ー を 返 す 。 こ の デ ィ ス ク リ プ タ ー は catclose() ま た は execve(2) が 呼 び 出 さ れ る ま で 有 効 で あ る 。 カ タ ロ グ デ ィ ス ク リ プ タ ー を 実 装 す る た め に フ ァ イ ル デ ィ ス ク リ プ タ ー を 使 用 す る と 、 FD_CLOEXEC フ ラ グ が 設 定 さ れ る 。 引 き 数 name は オ ー プ ン す る メ ッ セ ー ジ カ タ ロ グ の 名 前 を 指 定 す る 。 name が 絶 対 パ ス で 指 定 さ れ て い る 場 合 (す な わ ち '/' を 含 ん で い る 場 合 )、 name は メ ッ セ ー ジ カ タ ロ グ へ の パ ス 名 で あ る 。 そ れ 以 外 の 場 合 、 環 境 変 数 NLSPATH が name と と も に 使 用 さ れ %N を 置 き 換 え る (locale(7) 参 照 )。 プ ロ セ ス が root 権 限 を 持 っ て い る と き に NLSPATH が 使 わ れ る か ど う か は 指 定 さ れ て い な い 。 NLSPATH 環 境 変 数 が 存 在 し な い か 、 NLSPATH で 指 定 さ れ た パ ス の 中 の ど の パ ス に お い て も メ ッ セ ー ジ カ タ ロ グ を オ ー プ ン で き な い 場 合 、 実 装 で 定 義 さ れ て い る パ ス が 使 わ れ る 。 後 者 の デ フ ォ ル ト パ ス は 、 flag 引 き 数 が NL_CAT_LOCALE の 場 合 に は LC_MESSAGES の ロ ケ ー ル 設 定 に 依 存 し 、 flag 引 き 数 が 0 の 場 合 に は LANG 環 境 変 数 に 依 存 す る 。 ロ ケ ー ル の LC_MESSAGES を 変 更 す る と 、 オ ー プ ン さ れ て い る カ タ ロ グ デ ィ ス ク リ プ タ ー が 無 効 に な る か も し れ な い 。
catopen() の flag 引 き 数 は 、 使 用 さ れ る 言 語 の ソ ー ス を 示 す た め に 使 わ れ る 。 NL_CAT_LOCALE に 設 定 さ れ る と 、 LC_MESSAGES の 現 在 の ロ ケ ー ル 設 定 が 使 わ れ る 。 そ れ 以 外 の 場 合 は LANG 環 境 変 数 が 使 わ れ る 。 関 数 catclose() は catalog で 指 定 さ れ た メ ッ セ ー ジ カ タ ロ グ を ク ロ ー ズ す る 。 こ れ は 、 以 降 の catalog で 指 定 さ れ る メ ッ セ ー ジ カ タ ロ グ へ の 全 て の 参 照 を 無 効 に す る 。
返 り 値
関 数 catopen() が 成 功 す る と 、 nl_catd 型 の メ ッ セ ー ジ カ タ ロ グ デ ィ ス ク リ プ タ ー を 返 す 。 失 敗 し た 場 合 は (nl_catdv) −1 を 返 し 、 errno を 設 定 し て エ ラ ー を 示 す 。 こ こ で 起 こ り 得 る エ ラ ー の 値 に は 、 open(2) の 呼 び 出 し の 際 に 起 こ り 得 る 全 て の エ ラ ー の 値 が 含 ま れ る 。 関 数 catclose() は 、 成 功 し た 場 合 0 を 、 失 敗 し た 場 合 −1 を 返 す 。
環 境 変 数
LC_MESSAGES
LC_MESSAGES ロ ケ ー ル 設 定 の ソ ー ス に な る こ と も 可 能 な の で 、 flag が NL_CAT_LOCALE に 設 定 さ れ て い る 場 合 は 、 使 用 す る 言 語 を 決 定 す る の に 使 わ れ る 。
LANG |
flag が 0 の 場 合 、 使 用 す る 言 語 を 決 定 す る 。 |
準 拠
POSIX.1−2001.
注 意
以 上 は POSIX.1−2001 に お け る 説 明 で あ る 。 glibc で は NL_CAT_LOCALE の 値 は 1 で あ る 。 デ フ ォ ル ト の パ ス は 場 合 に よ っ て 様 々 で あ る が 、 通 常 は /usr/share/locale 以 下 の フ ァ イ ル が 調 べ ら れ る 。
関 連 項 目
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。