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

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

我是否正確關閉了此功能?

我是否正確關閉了此功能?

Go
慕森王 2021-12-20 10:40:49
幾個小時后,我不斷收到錯誤消息,因為我打開的文件太多。我已經編輯過了,ulimit -n但這似乎只會延長錯誤發生和進程崩潰之前的時間。我相信我已經將它縮小到這個功能,我只是不確定我是否正確關閉它。我目前有一個功能go func() {    if _, err := io.Copy(rw, stdout); err != nil {        if !WritePipeBroken.MatchString(err.Error()) &&            !ConnectionResetByPeer.MatchString(err.Error()) {            rollbar.Error(rollbar.ERR, err)        }        log.Printf("pipeThruFfmpegToMp3: %v\n", err)        if err := ffmpeg.Process.Kill(); err != nil {            log.Printf("pipeThruFfmpegToMp3: %v\n", err)        }    }    rw.Flush()    wg.Done()}()我相信它正在掛起,所以我應該這樣做go func() {    if _, err := io.Copy(rw, stdout); err != nil {        if !WritePipeBroken.MatchString(err.Error()) &&            !ConnectionResetByPeer.MatchString(err.Error()) {            rollbar.Error(rollbar.ERR, err)        }        log.Printf("pipeThruFfmpegToMp3: %v\n", err)        if err := ffmpeg.Process.Kill(); err != nil {            log.Printf("pipeThruFfmpegToMp3: %v\n", err)        }    }    if ffmpeg.Process != nil {        ffmpeg.Process.Kill()    }    if stdout != nil {        stdin.Close()    }    rw.Flush()    wg.Done()}()
查看完整描述

1 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

使用defer像谷歌建議的聲明:


func CopyFile(dstName, srcName string) (written int64, err error) {

    src, err := os.Open(srcName)

    if err != nil {

        return

    }

    defer src.Close()


    dst, err := os.Create(dstName)

    if err != nil {

        return

    }

    defer dst.Close()


    return io.Copy(dst, src)

}


查看完整回答
反對 回復 2021-12-20
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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