Go での実行可能ファイルへのパスの検索
Go では、開発者はコンパイルされたプログラムの実行可能ファイルのパスを見つける必要があることがよくあります。このパスは、オペレーティング システム、現在の作業ディレクトリ、および実行可能ファイルがシステムの PATH 変数にあるかどうかによって異なります。
Using os.Args[0]
最初に、開発者は os.Args[0] を使用して実行可能パスを取得しようとするかもしれません。このアプローチは一部のシナリオでは機能する可能性がありますが、制限もあります。実行可能ファイル名に相対パスまたは絶対パスを示す文字が含まれている場合 (「../foo」など)、完全パスではなくファイル名のみが返されます。
Leveraging 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 中国語 Web サイトの他の関連記事を参照してください。