Maison > développement back-end > Golang > Golang appelle la méthode exe

Golang appelle la méthode exe

PHPz
Libérer: 2023-05-10 12:06:07
original
2511 Les gens l'ont consulté

Pendant le processus de développement à l'aide de Golang, il est parfois nécessaire d'appeler des programmes exe externes pour effectuer certaines tâches. Voici quelques méthodes Golang courantes pour appeler exe.

1. package os/exec

Dans la bibliothèque standard golang, vous pouvez utiliser le package os/exec pour appeler des commandes et des programmes externes. Il fournit un ensemble de fonctions et de structures simples pour nous faciliter l'exécution de commandes externes.

  1. Exécuter la commande

Vous pouvez utiliser la fonction Command pour créer une structure Cmd et spécifier la commande à exécuter. Par exemple :

cmd := exec.Command("echo", "hello world")
Copier après la connexion

Cette commande affichera "hello world" sur le terminal.

  1. Exécuter des programmes

En utilisant la fonction Commande, vous pouvez également exécuter d'autres fichiers exécutables. Par exemple :

cmd := exec.Command("calc")
Copier après la connexion

Cette commande démarrera le programme de calculatrice sur les systèmes Windows.

  1. Passer des paramètres

Si vous devez transmettre des paramètres à un programme externe, vous pouvez utiliser l'attribut Args pour ajouter des paramètres à la structure Cmd. Par exemple :

cmd := exec.Command("ping", "-c", "4", "www.google.com")
Copier après la connexion

Cette commande pingera le serveur Google sur le terminal et affichera 4 résultats.

  1. Exécutez la commande et obtenez le résultat

Après avoir utilisé la fonction Command pour exécuter la commande, vous pouvez utiliser la méthode Output pour obtenir le résultat de l'exécution. Par exemple :

cmd := exec.Command("ls", "-l")
output, err := cmd.Output()
if err != nil {
    fmt.Println(err)
}
fmt.Println(string(output))
Copier après la connexion

Cette commande listera tous les fichiers du répertoire actuel sur le terminal et affichera leurs informations détaillées.

2. Package Syscall

Le package os/exec prend uniquement en charge l'appel de programmes en ligne de commande. Si vous avez besoin d'appeler des interfaces avancées telles que l'API Windows ou les appels système Linux, vous pouvez utiliser le package syscall dans la bibliothèque standard golang.

  1. API Windows

En prenant Windows comme exemple, si vous devez appeler l'API Windows, vous pouvez utiliser les fonctions syscall.LoadLibrary et syscall.GetProcAddress pour charger la bibliothèque de liens dynamiques et obtenir la fonction API. Par exemple :

dll, err := syscall.LoadLibrary("user32.dll")
if err != nil {
    fmt.Println(err)
    return
}
defer syscall.FreeLibrary(dll)

proc, err := syscall.GetProcAddress(dll, "MessageBoxW")
if err != nil {
    fmt.Println(err)
    return
}

lpText, _ := syscall.UTF16PtrFromString("Hello, World!")
lpCaption, _ := syscall.UTF16PtrFromString("Message")

syscall.Syscall(
    uintptr(proc),
    uintptr(0),
    uintptr(0),
    uintptr(unsafe.Pointer(lpText)),
    uintptr(unsafe.Pointer(lpCaption)),
)
Copier après la connexion

Ce code appellera la fonction MessageBoxW dans l'API Windows du programme pour faire apparaître une fenêtre contextuelle avec le message "Hello, World !".

  1. Appel système Linux

Pour les systèmes tels que Linux, vous pouvez également utiliser le package syscall pour appeler des commandes système ou des fonctions système. Par exemple :

cmd := "/bin/ls"
args := []string{"-l", "/"}
env := os.Environ()

err := syscall.Exec(cmd, args, env)
if err != nil {
    log.Fatal(err)
}
Copier après la connexion

Ce code appellera la commande /bin/ls du système Linux dans le programme et affichera tous les fichiers du répertoire racine et leurs informations détaillées.

Résumé :

Ce qui précède sont les méthodes courantes d'appel de méthodes exe dans Golang. Le package os/exec peut être utilisé pour appeler facilement et commodément des programmes en ligne de commande, tandis que le package syscall peut appeler de manière plus flexible des interfaces de haut niveau telles que des commandes système, des API et des fonctions. Dans le développement réel, différentes méthodes peuvent être sélectionnées pour accomplir la tâche en fonction de la situation spécifique.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal