Я компилирую программу с Go для различных платформ и запускаю ее, вызывая относительный путь или просто по его имени (если он находится в переменной PATH).
Можно ли узнать, где находится исполняемый файл?
Скажем, моя программа называется "foo
(.exe
)". Я могу запустить ./foo
, foo
(если он находится в PATH), ../../subdir/subdir/foo
.
Я попытался использовать os.Args[0]
, и я предполагаю, что я должен проверить, содержит ли название программы что-то другое, кроме "foo". Если да, используйте filepath.Abs
, если нет, используйте (я не могу найти имя функции, есть функция, которая просматривает PATH, чтобы проверить, где находится программа).