Как узнать каталог, из которого был запущен исполняемый файл в OS/X?

Когда программа C, написанная в обычном стиле int main(int argc, char* argv[]), запускается из Finder, она запускается в домашнем каталоге пользователя, который ее запустил. (например, /Users/Fork).

Есть ли какая-нибудь хитрая ловушка, с помощью которой такая программа на базе терминала может узнать, в каком каталоге она была запущена?


person HostileFork says dont trust SE    schedule 16.04.2013    source источник


Ответы (1)


Вы можете получить полный путь к двоичному образу программы через _NSGetExecutablePath. Канонизировать это, используя, например. realpath, а затем удалить от имени файла, используя, например. dirname и у вас есть каталог, из которого была запущена программа.

person earl    schedule 16.04.2013