golang os file

Golang 源码阅读 os.File

蹲街弑〆低调 提交于 2020-03-17 01:48:27
某厂面试归来,发现自己落伍了!>>> 最近写程序过程感觉golang读写文件比较慢。因此决定读一下源码。 src/os/file.go http://www.ieyebrain.com:8080/golang/src/os/file.go 中定义了file的函数: Name, Read,Write,Seek,Close等等。 例如:Read函数 func (f *File) Read(b []byte) (n int, err error) { if f == nil { return 0, ErrInvalid } n, e := f.read(b) if n == 0 && len(b) > 0 && e == nil { return 0, io.EOF } if e != nil { err = &PathError{"read", f.name, e} } return n, err } 这里实现了委托调用的接口技巧。就是把Read操作委托给f.read函数。f为File类型指针,找了一圈,才发现它定义在具体实现的文件中。比如:file_windows.go中, http://www.ieyebrain.com:8080/golang/src/os/file_windows.go type File struct { *file } type file struct {