• 締切
  • 困ってます

Linuxのデーモンが参照するロケール情報

  • 質問No.56627
  • 閲覧数362
  • ありがとう数2
  • 回答数2

お礼率 100% (2/2)

Linuxで動作するデーモンアプリケーションを作成しています。
デーモンが参照するロケール情報を取得したいのですが、定義されているファイル(Solarisの場合の/etc/default/initファイル)が、各ディストリビューションごとに異なっているため、エレガントな解決方法を探しています。

参照する定義ファイルは
RedHat6.2J・・・/etc/sysconfig/i18n
TurboLinux6.1・・・/etc/skel/.lang/i18n
OpenLinux・・・/etc/config.d/I18N
といった具合なのです。

なお、どのユーザが起動してもこれらのファイルに定義してあるロケール情報で動作する必要があるため、環境変数を参照するというのはNGです。

何かよいアイデアがありましたら、教えてください。
よろしくお願いいたします。

回答 (全2件)

  • 回答No.2

ベストアンサー率 50% (1122/2211)

「ロケール情報」というのが何を指すのかが良く分からない
のですが、ロケール名を知りたいのでしょうか?

setlocale() は第2引数に NULL を指定すると、現在の
ロケールを問い合わせるだけです。
お礼コメント
tshibata

お礼率 100% (2/2)

素早い回答、ありがとうございました。
結局、自分のパッケージをインストールする際に、インストールディレクトリ配下に、これらのファイルをシンボリックリンクを作成することで解決できました。
また何かありましたら、よろしくお願いいたします。

ちなみにほしいロケール情報とは、ロケール名のことです。
投稿日時:2001/03/28 22:10
  • 回答No.1

ベストアンサー率 37% (570/1525)

やっぱり環境変数ではないでしょうか。

ちなみにデーモンを「どのユーザが起動しても」というのが私の理解の範囲を超えているので間違っている可能性は高いです。

一般ユーザで起動するデーモンを書いたことが無いので…。
お礼コメント
tshibata

お礼率 100% (2/2)

素早い回答、ありがとうございました。
結局、自分のパッケージをインストールする際に、インストールディレクトリ配下に、これらのファイルをシンボリックリンクを作成することで解決できました。
また何かありましたら、よろしくお願いいたします。

なお、「どのユーザが起動しても」というのは、ブート時にデーモンを起動するだけではなく、例えばbbbという特定グループのユーザが起動する場合も想定していました。
この場合、bbbの環境が有効になってしまう恐れがあるため、環境変数からロケールを取得するのは好ましくありませんでした。
(簡単にいってしまえば、syslogdと同じロケールで動作したかったのです。)
ありがとうございました。
投稿日時:2001/03/28 22:16
関連するQ&A

ピックアップ

ページ先頭へ