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

  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010
  • PUSHER

    PUSHER

    11 HAZİRAN 2014