2016-11-18 2 views
1

Ich möchte Binärdateien im GoLang-Programm ausführen.Wie führe ich Binärdateien im GoLang-Programm aus?

Hier ist mein Code:

package main 

import (
    "fmt" 
    "os/exec" 
) 

func main() { 
    output, _ := exec.Command("/home/user/Golang/bin/hello").Output() 
    fmt.Println(output) 
} 

Aber ich bekomme die Ausgabe als []

Vielen Dank im Voraus.

+0

Überprüfen Sie den von 'Output' zurückgegebenen Fehler. Verwenden Sie außerdem 'fmt.Printf ("% s \ n ", Ausgabe)', um die Ausgabe als Text anzuzeigen. –

Antwort

1

Wenn ich an der Quelle des exec.Command() suchen tut es einen Fehler zurück, aber nur Cmd zurück, die Struktur in dem Paket ist exe: source

.... 

func Command(name string, arg ...string) *Cmd { 
    cmd := &Cmd{ 
     Path: name, 
     Args: append([]string{name}, arg...), 
    } 
    if filepath.Base(name) == name { 
     if lp, err := LookPath(name); err != nil { 
      cmd.lookPathErr = err 
     } else { 
      cmd.Path = lp 
     } 
    } 
    return cmd 
} 

.... 

ich erfolgreich die Binärdatei erhalten haben laufen mit Dieser Code:

Dieser arbeitet für mich mit Binärdatei, die einige zufällige Zeichenfolge drucken.

+0

Gibt es einen besseren Weg dazu? Dies würde als separate Aufgabe ausgeführt werden. Es unter Gouutines laufen zu lassen, macht es sogar schlecht. Es werden mehr Jobs gleichzeitig ausgeführt, die letztendlich alle Serverressourcen verwenden. – Mir

5

Ich kann die Ausgabe bekommen.

package main 

import (
    "fmt" 
    "os/exec" 
) 

func main() { 
    output, err := exec.Command("/Users/duguying/gopath/bin/test").Output() 
    if err!=nil { 
     fmt.Println(err.Error()) 
    } 
    fmt.Println(string(output)) 
} 

Überprüfen Sie, ob die Binärdatei zuerst oder der Binärdateipfad korrigiert wird. Versuchen Sie, Ihre Fehlermeldung auszudrucken.

Verwandte Themen