Dans ce scénario, vous souhaitez diffuser la sortie d'une commande exécutée à la fois vers le processus parent et vers un journal déposer. Cependant, le standard cmd.StdoutPipe renvoie le résultat final sous forme de chaîne, ce qui devient une limitation pour les processus de longue durée.
Le code fourni, qui utilise exec.Command, StdoutPipe et bufio.NewScanner fonctionnent comme prévu. Il diffuse efficacement la sortie du processus enfant, l'imprime sur la console et l'enregistre en temps réel. La sortie en direct du processus enfant est capturée et affichée au fur et à mesure.
Si le code ne fonctionne pas pour vous, considérez les raisons suivantes :
Si la commande n'imprime pas les nouvelles lignes, il existe des méthodes alternatives pour diffuser la sortie :
Il est important de se rappeler que si le processus enfant écrit dans ses flux stdout et stderr par défaut, ils seront ignorés à moins qu'ils ne soient explicitement lus. La lecture de ces flux garantit que vous ne manquerez aucun message de sortie ou d'erreur, même si le processus enfant ne génère généralement pas de sortie vers ces flux.
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!