第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

“實(shí)時(shí)”從 `exec.Cmd` 獲取輸出

“實(shí)時(shí)”從 `exec.Cmd` 獲取輸出

Go
天涯盡頭無(wú)女友 2021-10-18 14:10:58
這個(gè)問題類似于Golang - Copy Exec output to Log除了它涉及exec命令輸出的緩沖。我有以下測(cè)試程序:package mainimport (    "fmt"    "log"    "os/exec")func main() {    cmd := exec.Command("python", "inf_loop.py")    var out outstream    cmd.Stdout = out    if err := cmd.Start(); err != nil {        log.Fatal(err)    }    fmt.Println(cmd.Wait())}type outstream struct{}func (out outstream) Write(p []byte) (int, error) {    fmt.Println(string(p))    return len(p), nil}inf_loop.py,上面提到的,只包含:print "hello"while True:    passgo 程序在我運(yùn)行時(shí)掛起并且不輸出任何內(nèi)容,但是如果我使用os.Stdout而不是out它在掛起之前輸出“hello”。為什么兩個(gè)io.Writers之間存在差異,如何修復(fù)?更多診斷信息:當(dāng)循環(huán)被移除時(shí)inf_loop.py,正如預(yù)期的那樣,兩個(gè)程序都會(huì)輸出“hello”。當(dāng)yes作為程序而不是python腳本使用并輸出時(shí)len(p),outstream.Write有輸出,輸出通常是16384或32768。這向我表明這是一個(gè)緩沖問題,正如我最初預(yù)期的那樣,但我還是不明白為什么outstream結(jié)構(gòu)被緩沖阻塞但os.Stdout不是。一種可能性是該行為是將直接exec傳遞給的方式的結(jié)果,如果它是一個(gè)(有關(guān)詳細(xì)信息,請(qǐng)參閱源代碼),否則它會(huì)在進(jìn)程和 之間創(chuàng)建一個(gè),并且該管道可能會(huì)導(dǎo)致緩沖。但是, 的操作和可能的緩沖對(duì)我來說太低級(jí)了,無(wú)法調(diào)查。io.Writeros.StartProcessos.Fileos.Pipe()io.Writeros.Pipe()
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 319 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)