```go
func main() {
bytes := make([]byte, 10)
file, _ := os.OpenFile("D://tmp.log",os.O_CREATE | os.O_RDWR|os.O_APPEND, 0666)
file.Read(bytes)
fmt.Println(1,bytes)
fmt.Println(2,string(bytes))
file.Write([]byte("why why why"))
file.Sync()
bytes2 := make([]byte, 10)
_, err := file.Read(bytes2)
fmt.Println(err)
fmt.Println(3,bytes2)
fmt.Println(4,string(bytes2))
}
# output
1 [97 115 100 97 115 100 115 97 100 115]
2 asdasdsads
EOF
3 [0 0 0 0 0 0 0 0 0 0]
4
```
为啥file,sync后就不能read了?,获取不到锁么?
write 后read,返回EOF,文件本身数据还没读完,为啥会EOF
API也没什么说明,是我哪里遗漏了么....
我不说具体原因了,你在几个关键地方,通过 `fmt.Println(file.Seek(0, os.SEEK_CUR))` 看看文件当前的位置,就知道为什么是这样了。
#1