自分のプロセスの名前を取得する

これ、案外できない。 argv[0] ですむ場合が多いんだけど。

  • Linux では /proc/self/exe くらいかな。
  • FreeBSD では dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &lmap) で自分自身も入ってくる。
  • MacOSX は _dyld_* で自分自身も入ってくる。
  • Win32 では GetModuleHandle(NULL) の返り値に対して GetModuleFileName 。
  • NetBSD は不明。 dlctl が動けばこれは FreeBSD 同様に引っこ抜けると思われる。
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h