タイトルMac OS XのCarbonアプリケーションでユーザ名とコンピュータ名を取得する方法カテゴリーTechnical Q&A, Carbon/CF
作成日2001/10/31 17:0:40作成者新居雅行
Technical Q&Aに、アプリケーション内でユーザ名とコンピュータ名を取得する方法に関する問と答えが掲載された。Mac OS 9までは、‘STR ’リソースのID=-16096とID=-16413で取得できたが、Mac OS Xではその方法では取得できない。Carbonアプリケーションでは、OSUtils.hにあるCSCopyUserNameとCSCopyMachineNameというAPIを使えば、ユーザ名とコンピュータ名を取得できる。ただし制限がある。まず、Mac OS Xでは基本的にこのAPIは使えるが、10.0.1まではバグのためにクラッシュしてしまうし、10.0.xではコンピュータ名ではなくBSDのホスト名を返し、さらにはCFM形式のプログラムからは利用できない。また、CarbonLibではVer.1.5からのサポートとなる。こうした事情を含めて各種のCarbonで使えるサブルーチンがソースコードして掲載されているので、そのコードを使ってユーザ名とコンピュータ名を取得するようにすればよいだろう。
一方、デーモンとして稼働するプロセスの場合は、ログアウトしても稼働しているかもしれない。その場合は、Mac OS X 10.1で導入されたSystem Configration Frameworkに含まれている機能を使ってユーザ名やコンピュータ名を取得することになる。SCDynamicStoreCopyConsoleUserとSCDynamicStoreCopyComputerNameというAPIを利用すればよい。
関連リンクQA1078: Getting the User and Computer Name