亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

流操作系統/exec.Command

流操作系統/exec.Command

Go
DIEA 2021-10-18 14:49:15
我想構建一個類似于 unix tool 的基準測試工具time。我目前擁有的是:package mainimport (    "fmt"    "os"    "os/exec"    "time")func main() {    command := os.Args[1]    args := os.Args[2:]    cmd := exec.Command(command, args...)    start_time := time.Now().UnixNano()    stdout, err := cmd.Output()    if err != nil {        println(err.Error())        return    }    print(string(stdout))    total_time := int64(time.Nanosecond) * (time.Now().UnixNano() - start_time) / int64(time.Millisecond)    fmt.Println(total_time)}我的問題是,輸出不是流式傳輸,而是一次全部打印出來,奇怪的是,對于某些程序根本沒有。
查看完整描述

2 回答

?
郎朗坤

TA貢獻1921條經驗 獲得超9個贊

我不確定您在這里嘗試做什么,print(string(stdout))但這是不必要的,您面臨的問題可能是那里濫用的副作用。


func main() {

    command := os.Args[1]

    args := os.Args[2:]

    cmd := exec.Command(command, args...)

    cmd.Stdout = os.Stdout

    cmd.Stderr = os.Stderr

    start_time := time.Now().UnixNano()


    if err != nil {

        fmt.Println(err.Error())

        return

    }


    total_time := int64(time.Nanosecond) * (time.Now().UnixNano() - start_time) / int64(time.Millisecond)

    fmt.Println(total_time)

}


查看完整回答
反對 回復 2021-10-18
  • 2 回答
  • 0 關注
  • 214 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號