SORU
16 Ocak 2012, PAZARTESİ


Golang çocuk sürecin boru yönlendirme stdout

Programı gibi bir sunucu yürüten gidip bir program (da) yazıyorum. Şimdi ana program başladığım yere terminal penceremde çocuk programının stdout istiyorum. Bunu yapmanın bir yolucmd.() Çıktıişlevi, ama bu süreç çıkıldı sonra stdout yazdırır. (Sunucu-bu program uzun bir süre için çalışır, çünkü bu bir sorun işte günlük çıkış) okumak istiyorum

Değişkendışarı.yazın ıo.ReadCloserve görevimi başarmak için ne yapmam gerektiğini bilmiyorum, ve hiçbir şey bu konuda web üzerinde yararlı bulamıyorum.

func main() {
    cmd := exec.Command("/path/to/my/child/program")
    out, err := cmd.StdoutPipe()
    if err != nil {
        fmt.Println(err)
    }
    err = cmd.Start()
    if err != nil {
        fmt.Println(err)
    }
    //fmt.Println(out)
    cmd.Wait()
} 

Kod açıklaması: derlemek için kodu almak için Sertifika işlevi, bu Sertifika biliyorum(ıo.Yorumsuz ReadCloser) anlamlı bir işlev değil. (çıkış üretir&{3 |0 0}Bu iki satır sadece derlemek için kodu almak için gereklidir.

CEVAP
14 ŞUBAT 2013, PERŞEMBE


Şimdi benim terminalde çocuk programının stdout istiyorum ana program başladığım yer pencere.

Borular veya goroutines ile uğraşmak gerek, bu çok kolay.

func main() {
    // Replace `ls` (and its arguments) with something more interesting
    cmd := exec.Command("ls", "-l")
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    cmd.Run()
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ICON

    ICON

    19 EKİM 2011
  • Caramella Girls

    Caramella Gi

    19 Mayıs 2008
  • RaverX DouBle StAg XI

    RaverX DouBl

    23 Mayıs 2008