在Go 中尋找可執行檔的路徑
在Go 中,開發人員經常會遇到需要找到其編譯程式的可執行路徑的情況。此路徑可能會有所不同,具體取決於作業系統、目前工作目錄以及可執行檔案是否位於系統的 PATH 變數中。
使用 os.Args[0]
最初,開發人員可能會嘗試使用 os.Args[0] 來擷取執行路徑。雖然這種方法在某些情況下可能有效,但它有其限制。如果可執行檔案名稱包含任何指示相對或絕對路徑的字元(例如“../foo”),它將只傳回檔案名稱而不是完整路徑。
利用 os.Executable ( Go 1.8 )
從 Go 1.8 開始,os.Executable 函數提供了更健壯的解決方案來尋找可執行路徑。此函數傳回目前可執行檔的絕對路徑,無需進行額外檢查。
範例程式碼:
import ( "os" "path" "log" ) func main() { ex, err := os.Executable() if err != nil { log.Fatal(err) } dir := path.Dir(ex) log.Print(dir) }
運行時,此程式碼將記錄包含可執行檔的目錄,無論它是如何呼叫的(例如「./foo 」、「foo」)。
以上是如何可靠地找到Go中的可執行路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!