А я в X11 во времена 3-ей Qt наступал на грабли с QApplication::applicationFilePath()/QApplication::applicationDirPath().
Там прямо у ОС узнать нельзя, поэтому Qt действовала несколько эвристически, на основе arg[0], переменной окружения PATH и текущего пути.
Так вот грабли заключались в том что bash (и видимо другие шеллы) по разному относительно qt воспринимали "пустой путь" в PATH.
Т.е. когда
PATH=:dir1:dir2
PATH=dir1::dir2
PATH=dir1:dir2:
Постил об этом тролям но чтото тогда ответа не было.... 4-5лет назад дело было... Сейчас не знаю как обстоит дело...