Maison > développement back-end > Golang > Comment déboguer les erreurs « état de sortie 1 » dans exec.Command de Golang ?

Comment déboguer les erreurs « état de sortie 1 » dans exec.Command de Golang ?

Linda Hamilton
Libérer: 2024-12-04 06:40:15
original
706 Les gens l'ont consulté

How to Debug

Erreur de débogage « état de sortie 1 » dans exec.Command de Golang

Lors de l'exécution de exec.Command dans Golang, rencontre d'un « état de sortie 1 » " L'erreur peut être frustrante sans informations détaillées. Heureusement, il existe une solution pour découvrir la cause sous-jacente.

Solution :

Utilisez la propriété Stderr de l'objet Command. Cette propriété capture la sortie d’erreur standard générée par la commande. Voici une version modifiée de l'extrait de code :

import (
    "bytes"
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\")
    var out bytes.Buffer
    var stderr bytes.Buffer
    cmd.Stdout = &out
    cmd.Stderr = &stderr
    err := cmd.Run()
    if err != nil {
        fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
        return
    }
    fmt.Println("Result: " + out.String())
}
Copier après la connexion

Explication :

En attribuant la propriété Stderr à un tampon (stderr), tout message d'erreur produit par le La commande sera capturée et ajoutée au tampon. Lorsque la commande se termine avec un code de sortie différent de zéro, l'erreur et la sortie stderr seront imprimées, fournissant plus de contexte pour le débogage.

Remarque :

Certaines commandes peuvent imprime les erreurs sur stdout au lieu de stderr, ou renvoie un code d'erreur de 0 avec des messages dans stderr. Par conséquent, le comportement de chaque commande doit être pris en compte lors de l'adaptation de cette solution.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal