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

  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011
  • wowchick16

    wowchick16

    17 Mart 2007