我正在Go中运行一个程序,该程序在读取文件后会连续发送数据/proc/stat。使用ioutil.ReadFile("/proc/stat") 大约运行14个小时后,我得到了错误:too many files open /proc/stat 单击此处以获取代码段。我怀疑f.CloseGo有时会忽略延缓,或者正在跳过它。代码段(以防play.golang.org早于stackoverflow.com死亡):package mainimport ("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)) }}
2 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
如果确定执行f.Close(),它仍然存在问题,可能是因为您的其他连接(例如与MYSQL的连接)也会引起问题,尤其是在循环中,并且您忘记了关闭连接。
总是这样 :
db.connection....
**defer db.Close()**
If it is in loop
loop
db.connection....
**defer db.Close()**
end
不要将db.connection放在循环之前
- 2 回答
- 0 关注
- 442 浏览
添加回答
举报
0/150
提交
取消