ioutil.ReadFile()中出现错误

我正在Go中运行一个程序,该程序在读取文件后会连续发送数据/proc/stat。使用ioutil.ReadFile("/proc/stat") 大约运行14个小时后,我得到了错误:too many files open /proc/stat 单击此处以获取代码段。


我怀疑f.CloseGo有时会忽略延缓,或者正在跳过它。


代码段(以防play.golang.org早于stackoverflow.com死亡):


package main


import ("fmt";"io/ioutil")


func main() {

    for {

        fmt.Println("Hello, playground")

        fData,err := ioutil.ReadFile("/proc/stat")

        if err != nil {

            fmt.Println("Err is ",err)

        }   

        fmt.Println("FileData",string(fData))

    }

}


子衿沉夜
浏览 443回答 2
2回答

婷婷同学_

如果确定执行f.Close(),它仍然存在问题,可能是因为您的其他连接(例如与MYSQL的连接)也会引起问题,尤其是在循环中,并且您忘记了关闭连接。总是这样 :db.connection....**defer db.Close()**If it is in looploop    db.connection....    **defer db.Close()**end不要将db.connection放在循环之前
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go