Avatar ·

Como obter o diretório do arquivo executável atual em Go?

Olá a todos! Sou um desenvolvedor Go iniciante e me deparei com um problema: preciso determinar o diretório onde o arquivo executável atual do meu programa está localizado. Estou escrevendo uma pequena aplicação CLI que lê um arquivo de configuração que está na mesma pasta que o binário. Mas quando executo o programa de outro diretório (por exemplo, via `go run` da raiz do projeto ou do PATH do sistema), os caminhos relativos quebram. Aqui está o que tentei: ```go package main import ( "fmt" "os" "path/filepath" ) func main() { // Tentativa 1: apenas os.Getwd() — retorna o diretório de trabalho, não a pasta do arquivo wd, _ := os.Getwd() fmt.Println("Working dir:", wd) // Tentativa 2: os.Args[0] — mostra o caminho pelo qual o programa foi chamado fmt.Println("Args[0]:", os.Args[0]) // Tentativa 3: filepath.Abs(os.Args[0]) — ainda há problema com links simbólicos abs, _ := filepath.Abs(os.Args[0]) fmt.Println("Abs:", abs) } ``` O problema é que `os.Args[0]` pode ser apenas