我已经维护了一个当前正在我的系统(Linux)上运行的进程的列表,现在如果我可以从这个pid获取进程详细信息,我会在golang中遇到syscall.Getrusage()但是我没有得到期望的结果.有没有人有与之相关的想法
我在Go中运行一个程序,它在读取文件后不断发送数据/proc/stat.使用ioutil.ReadFile("/proc/stat")
After运行约14小时后,我得到了错误:too many files open /proc/stat
点击此处获取代码片段.
我怀疑f.CloseGo有时会忽略defer ,或者它正在跳过它.
代码片段(如果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))
}
}
Run Code Online (Sandbox Code Playgroud) go ×2