>>8
> 実行ファイルの方は自分で調べようと思います。

1. argv[0]がfull pathかどうか?
  yes → それ
2. argv[0]が'/'入りでかつ相対パスか?
  yes → getcwd と それ を連結
3. $PATHの中を順番に、argv[0]を探す。
found → それ

確か、GNU dldはこんなことをやっていた。(そこからcodeを盗んでもいい)