Maison >développement back-end >Golang >Comment les arguments variadiques peuvent-ils résoudre les erreurs « Fichier exécutable introuvable » lors de l'exécution de commandes système dynamiques dans Go ?
Utilisation d'arguments variadiques pour l'exécution dynamique de commandes
Dans les situations où le nombre d'arguments pour une commande système est inconnu, l'utilisation d'un fractionnement L'approche -and-assemble utilisant des arguments variadiques offre une solution élégante.
Comme observé dans le code fourni, tenter d'exécuter des commandes complexes avec plusieurs arguments, des erreurs telles que "fichier exécutable introuvable" se produiraient. En effet, le code suppose une commande à un seul mot sans spécifier d'arguments séparément.
Pour surmonter cette limitation, envisagez la solution suivante :
func exeCmd(cmd string, wg *sync.WaitGroup) { fmt.Println("command is ", cmd) // Split command into head (e.g., 'g++') and parts (remaining arguments) parts := strings.Fields(cmd) head := parts[0] parts = parts[1:] out, err := exec.Command(head, parts...).Output() if err != nil { fmt.Printf("%s", err) } fmt.Printf("%s", out) wg.Done() }
Ce code mis à jour utilise la fonctionnalité d'argument variadique de Go, désigné par trois points '...'. Voici comment cela fonctionne :
En employant des arguments variadiques, cette solution offre une flexibilité dans l'exécution de commandes système avec un nombre variable d'arguments, ce qui la rend particulièrement utile dans les situations où les commandes sont générées dynamiquement.
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!