Openfile之后,不close会有什么影响? (go小白,希望大神帮忙解释下!)

wlxt · · 3294 次点击
polaris
社区,需要你我一同完善!
看不是太明白,直接上代码吧
#1
更多评论
站长大大帮忙看下吧! ``` if l.file[s] == nil { for c := s; c >= debugLog; c-- { name, _ := logName(severityName[c], time.Now()) f, err := os.OpenFile(name, os.O_APPEND, 0666) //fmt.Println("f:", f) if err != nil && os.IsNotExist(err) { err := l.createFiles(c) if err != nil { os.Stderr.Write(data) // Make sure the message appears somewhere. l.exit(err) } } else { sb := &syncBuffer{ logger: l, sev: c, } f.Close() sb.file = f sb.Writer = bufio.NewWriterSize(sb.file, bufferSize) l.file[c] = sb //fmt.Println("l.file[c]:", l.file[c]) } //f.Close() } } switch s { case fatalLog: l.file[fatalLog].Write(data) fallthrough case errorLog: l.file[errorLog].Write(data) fallthrough case warningLog: l.file[warningLog].Write(data) fallthrough case infoLog: l.file[infoLog].Write(data) fallthrough case debugLog: l.file[debugLog].Write(data) } ```
#2
polaris
社区,需要你我一同完善!
写之前,肯定不能close;如果写之后,不close,可能会导致文件描述符用完。最好是在写完后,循环关闭文件描述符。
#3