- 184 名前:179 mailto:sage [2007/04/08(日) 19:56:40 ]
- >>183
単純な話なんだから、分かってるのなら答えて欲しいんだけど。 ・マルチユーザシステムであるUnixでは、ユーザ毎にLC_CTYPE設定が異なり得る。 これが前提。 ・何もしなければ(少なくとも昔のUnixでは)システムコールにchar*を渡せば それは「そのまま」kernelに素通しで渡るはず。つまり、一貫性の無い 異なるエンコーディングの名前がkernelに渡されることになる。しかも kernelに渡ってしまった後はそのエンコーディングを判断するすべが無い。 ユーザモードで呼ばれるシステムコールのCインタフェース(ラッパ)には 呼び出し側プロセスの環境のLC_CTYPEが分かっているので、多分ロケールに 従った変換をかけるならここがベストである、ように俺には見える。 で、 ・↑のような変換を行うシステムコールラッパの仕掛けなんですか ・kernel内部はUTF-8で統一されているのですか というのが質問。 間違っているのなら、どこがどう間違っているのか説明してほしい。
|

|