2004-03-13[n年前へ]
■古河近くで見た夕焼け
カーナビにまかせてつくばローラースタジアムに向けて出発してみると、いつの間にか東北自動車を北上している。オンボロの体育館のような建物の中でインラインホッケーの練習をして、時折窓際で涼しい風に吹かれてみる。体はちょっと熱くてシンドイけれど、何だかとても気持ちが良い。体育館の中で剣道をしてた頃を少し思い出すような。
その帰りに見た「古河近くで見た今日の夕焼け」
■今日の疑問
Linuxでg++でアプリケーションを作るときに、起動されたアプリケーションが「そのアプリケーションが置いてある場所」を知るにはどんな関数を使えば良いものなのでしょう?ファイル出力などが必要ない(system()+whichを使ってパスをファイルに吐いて、というようなものでない)方法はどんなものなのでしょう?
一般的な方法はないと思います。Unixのファイルシステムでは、バイナリはハードリンクで複数のパスを持てますし、ファイル実体からそのファイルのパスを参照する方法はありません。(極端な話、アプリケーション起動後にそのバイナリファイルをunlinkしてしまえば、「パスを持たないけれど走っているアプリケーション」になります---「このプログラムは実行終了後自動的に消滅する」ってわけです)。Unix上で、お望みの動作を得るのによく見る方法は、 * argv0を見て、それが絶対パスならそれを採用 * argv0を見て、それが相対パスならgetcwd()して絶対パスに直す * そうでなければ、PATH環境変数をひとつづつ探すというものです。上記の手順はよく使われるので、ライブラリもいくつか存在すると思います。例えばglib (www.gtk.org) の g_find_program_in_path()等は使えると思います。ありがとうございます。川合さん。
■JR東日本 駅発車メロディー オリジナル音源集
「宿駅の中央線・山手線・埼京線等、JR東日本の駅ホームで現在使用されている発車メロディーのオリジナル音源をCD化」というJR東日本 駅発車メロディー オリジナル音源集。3/24発売、2500円なり。 from tekstasy.