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

wlxt · · 3376 次点击
polaris
社区,需要你我一同完善!
你循环给 l.file 赋值了,那也循环处理,close 相应的描述符
#7
更多评论
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