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

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

來(lái)自io.ReadCloser的ReadLine

來(lái)自io.ReadCloser的ReadLine

Go
繁星點(diǎn)點(diǎn)滴滴 2021-05-04 17:36:24
我需要找到一種從io.ReadCloser對(duì)象讀取行的方法,或者找到一種在“結(jié)束行”符號(hào)上拆分字節(jié)數(shù)組的方法。但是我不知道結(jié)束線(xiàn)符號(hào),也找不到它。我的應(yīng)用程序執(zhí)行一個(gè)php腳本,需要從該腳本獲取實(shí)時(shí)輸出,并在獲取它時(shí)對(duì)其執(zhí)行“某些操作”。這是我的一小段代碼:cmd := exec.Command(prog, args)   /* cmd := exec.Command("ls")*/out, err := cmd.StdoutPipe()if err != nil {  fmt.Println(err)}err = cmd.Start()if err != nil {  fmt.Println(err)}之后,我out在go例程中監(jiān)視緩沖區(qū)。我嘗試了2種方法。1)nr, er := out.Read(buf)其中buf是一個(gè)字節(jié)數(shù)組。這里的問(wèn)題是我需要為每個(gè)新行制動(dòng)數(shù)組2)我的第二個(gè)選擇是創(chuàng)建一個(gè)新的bufio.reader ,如果我執(zhí)行像這樣的命令,則可以正常運(yùn)行,但如果我執(zhí)行則可以正常運(yùn)行一個(gè)PHP腳本,它立即得到文件結(jié)尾錯(cuò)誤并退出(我猜這是由于PHP的輸出延遲)r := bufio.NewReader(out)    line,_,e := r.ReadLine()ls編輯:我的問(wèn)題是我正在go例程內(nèi)創(chuàng)建bufio.Reader,而如果我在StdoutPipe()像minikomi建議的那樣做后,它可以正常工作
查看完整描述

1 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用bufio創(chuàng)建閱讀器,然后閱讀直到下一個(gè)換行符(注意,單引號(hào)表示字符?。?/p>


stdout, err := cmd.StdoutPipe()

rd := bufio.NewReader(stdout)

if err := cmd.Start(); err != nil {

    log.Fatal("Buffer Error:", err)

}


for {

    str, err := rd.ReadString('\n')

    if err != nil {

        log.Fatal("Read Error:", err)

        return

    }

    fmt.Println(str)

}

如果您試圖以goroutine的方式從閱讀器中讀取內(nèi)容,但沒(méi)有任何停止腳本的步驟,它將退出。


查看完整回答
反對(duì) 回復(fù) 2021-05-17
  • 1 回答
  • 0 關(guān)注
  • 250 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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