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

  • ParryGripp

    ParryGripp

    12 AĞUSTOS 2006
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011
  • UniqueApps

    UniqueApps

    4 Ocak 2009