« jrogueのスクリーンショット | Main | MacOS X Carbonでの 画面描画 »

MacOS X Carbonでの getlogin()

jrogueの移植で、従来Mac独自の処理を行っていた機種依存関数の多くを、UNIXの場合と同様の処理に変更してみたのだけど。なぜか getlogin() が間違ったアカウント名を返す。これは家族用に複数のアカウントを作っているので発覚したのだけど、複数の人間がログインして、ユーザーを切り替えて使っている場合、他人のアカウント名が帰ってくる場合があるのだ。というか、僕の場合ほぼかならず妻のlogin名が帰ってくる。

環境変数USERは正しい名前を返すようだ。なんだろう。ファスト・ユーザースイッチのバグだろうか??

環境変数を読むようにしてもいいのだけど、どうせならということで、このあたりの処理は独自仕様ということで、CSCopyUserName()を使って長いユーザー名を取得するようにした。これだと、日本語のアカウント名を得ることができる……っていうか、ひょっとして日本語アカウントとの相性問題か?子供が使うことも考えて、うちの家族全員日本語アカウント作っちゃったしなあ。

|

« jrogueのスクリーンショット | Main | MacOS X Carbonでの 画面描画 »

「パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/10254/102781

Listed below are links to weblogs that reference MacOS X Carbonでの getlogin():

« jrogueのスクリーンショット | Main | MacOS X Carbonでの 画面描画 »