| 日本−日本語 |
|
|
|
![]() |
HP-UX リファレンス: セクション 3 : ライブラリ (A~M) > ccatopen(3C)HP-UX 11i Version 2: September 2004 |
|
名称catopen(), catclose() ― メッセージカタログを読むためのオープン とクローズ 説明catopen() 関数は、メッセージカタログを開いてカタログ記述子を返します。 name は、メッセージカタログ名を指定します。 name は メッセージカタログのパス名を指定する (/) を含みます。その他に環境変数 NLSPATH environ(5) 参照) が使われます。 NLSPATH が複数のパスを指定する場合、 catopen() は、指定されているメッセージカタログを確実に開くことができる最初のパスに対するカタログ記述子を返します。 NLSPATH が、環境内に存在しない場合、または NLSPATH で指定したパスに対してメッセージカタログが開かれない場合は、 catopen() はシステム全体に通用するデフォルトのパスを使います。デフォルトは oflag の値が NL_CAT_LOCALE の場合、 LC_MESSAGES に影響されます。 oflag の値がゼロの場合、 デフォルトは環境変数 LANG に影響されます。 詳細は、 environ(5) を参照してください。 所有者が root ユーザーの、 setuid または setgid プログラムから catopen() が呼び出される場合、環境変数 NLSPATH は、メッセージカタログを検索するために、直接には使用されません。 代わりに、システムファイル /etc/default/nlspath と環境変数 NLSPATH を使ってメッセージカタログを検索します。 詳細は、 nlspath(4) を参照してください。 例: 環境変数が次のように設定され、 NLSPATH=/usr/lib/nls/msg/%L/%N.cat:/tmp/%L/%N.cat 設定ファイルに次のエントリがある場合、 NLSPATH=/usr/lib/nls/msg/%L/%N.cat /usr/lib/nls/msg/%L/%N.cat のパスだけが、カタログファイルの検索に用いられます。 この機能は、 NLSPATH 環境変数に依存する、 setuid または setgid root プログラムの互換性のためだけに提供されています。 新しく作成する、 setgid や setuid root プログラムでは、 NLSPATH に依存せず、絶対パス名だけを使用するようにしてください。 メッセージカタログ記述子は、プロセスによってクローズされるまで、または exec() 関数のいずれかに対する呼び出しが成功するまでプロセス内で有効です。 LC_MESSAGES カテゴリ内の設定を変更しても、既存の開いているカタログには影響ありません。 メッセージカタログ記述子の実現のためにファイル記述子が使われた場合は、 FD_CLOEXEC フラグがセットされます。 oflag がゼロの場合は、 カタログを見つけるために LANG 環境変数が使用されます。 oflag が NL_CAT_LOCALE の場合は、 setlocale() への正常な呼び出しが catopen() への呼び出しより前に行われた場合のみ、 メッセージカテゴリを見つけるために LC_MESSAGES カテゴリが使用されます。 oflag を、これ以外の値にセットしたときの結果は定義されていません。 catclose() 関数は、前回の catopen() の呼び出しから返されたメッセージカタログ記述子 catd をクローズします。 戻り値catopen() は正常終了するとメッセージカタログ記述子を返します。それ以外は catopen() は nl_catd)-1 を返し、エラーを示す errno をセットします。 catclose() は正常終了すると ゼロを返します。それ以外は、 catclose() は -1 を返し、エラーを示す errno をセットします。 エラー次の条件のいずれかを満たす場合、 catopen() はメッセージカタログを開かずに失敗して、最後に試みたパスについて errno をセットします。
catopen() が失敗した後に catgets() を呼び出すと、デフォルトのメッセージを取り出すことができます catgets(3C) 参照)。 catgets() は、無効なカタログ記述子が指定された場合には、 それ自体の def_str パラメータを返します。 次の条件が満たされる場合、 catclose() は失敗します。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||