Maison >développement back-end >Golang >Comment puis-je trouver de manière fiable le chemin de l'exécutable dans Go ?

Comment puis-je trouver de manière fiable le chemin de l'exécutable dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-23 18:04:11919parcourir

How Can I Reliably Find the Executable Path in Go?

Trouver le chemin d'accès à un exécutable dans Go

Dans Go, les développeurs rencontrent souvent le besoin de localiser le chemin de l'exécutable de leurs programmes compilés. Ce chemin peut varier en fonction du système d'exploitation, du répertoire de travail actuel et du fait que l'exécutable se trouve dans la variable PATH du système.

Utilisation de os.Args[0]

Dans un premier temps, les développeurs peuvent tenter d'utiliser os.Args[0] pour récupérer le chemin de l'exécutable. Bien que cette approche puisse fonctionner dans certains scénarios, elle présente des limites. Si le nom de l'exécutable contient des caractères indiquant un chemin relatif ou absolu (par exemple, "../foo"), il renverra uniquement le nom du fichier et non le chemin complet.

Exploiter os.Executable ( Go 1.8)

À partir de Go 1.8, la fonction os.Executable fournit une solution plus robuste pour trouver l'exécutable chemin. Cette fonction renvoie le chemin absolu de l'exécutable actuel, éliminant ainsi le besoin de vérifications supplémentaires.

Exemple de code :

import (
    "os"
    "path"
    "log"
)

func main() {
    ex, err := os.Executable()
    if err != nil { log.Fatal(err) }
    dir := path.Dir(ex)
    log.Print(dir)
}

Lors de son exécution, ce code enregistrera le répertoire contenant l'exécutable, quelle que soit la manière dont il a été invoqué (par exemple, "./foo", "foo").

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn