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

wlxt · · 3376 次点击
polaris
社区,需要你我一同完善!
它们只是引用关系而已,最重要的是关闭引用的描述符;而且,你在循环外,根本操作不了 f 了.
#5
更多评论
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