実行プログラムが自分の実体の名前とパスを取得する portable な方法が *nix と Windows の間にないのはべつにいいんだけど POSIX でそもそも存在しないのわりと怒りたくなる(argv[0] は symlink とかで簡単にウソつく
これを様々な OS specific な方法で実現する API を用意することで portability 確保するライブラリがあった https://github.com/gpakosz/whereami
シンプルな目的に反して 800 行くらいある(ほとんど ifdef なだけだが……
Linux だと /proc/self/exe 読めばいいの知ってたんだけど、Solaris だと /proc/self/path/a.out らしくてキレそ