Каков наилучший способ получить путь к исполняемому файлу во время выполнения? - PullRequest
5 голосов
/ 12 мая 2010

Если моя программа go может выполняться разными способами (cron, monit и т. Д.), Каков самый надежный способ получить каталог, содержащий исполняемый файл, во время выполнения?

В python это будет переменная:

os.path.realpath(__file__)

Ответы [ 3 ]

3 голосов
/ 12 мая 2010

Вероятно, это то же самое, что и в C, другими словами, нет переносимого метода защиты от ошибок. См. Как найти расположение исполняемого файла в C?

2 голосов
/ 01 августа 2012

Одно быстрое исправление в ходу (не обязательно универсальное) предлагает Эндрю Брукинс в " Go: Как получить каталог текущего файла":

В конце концов я узнал о runtime.Caller().
Это возвращает несколько подробностей о стеке текущей программы, включая путь к файлу.

В контексте моей проблемы было открытие файла данных в общем пакете.
То, что я приготовил, было:

_, filename, _, _ := runtime.Caller(1)
f, err := os.Open(path.Join(path.Dir(filename), "data.csv"))
0 голосов
/ 01 января 2014

Лучший способ, который я нашел, это использовать os.Getwd(). Смотри документацию здесь: Голанг Док

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...