mirror of
https://github.com/golang/go
synced 2024-11-24 22:00:09 -07:00
os: add Sync to *File, wraps syscall.Fsync
R=rsc, brainman, r, r2 CC=golang-dev https://golang.org/cl/3887042
This commit is contained in:
parent
02e88019f2
commit
217693e93c
@ -408,6 +408,19 @@ func (f *File) Truncate(size int64) Error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Sync commits the current contents of the file to stable storage.
|
||||
// Typically, this means flushing the file system's in-memory copy
|
||||
// of recently written data to disk.
|
||||
func (file *File) Sync() (err Error) {
|
||||
if file == nil {
|
||||
return EINVAL
|
||||
}
|
||||
if e := syscall.Fsync(file.fd); e != 0 {
|
||||
return NewSyscallError("fsync", e)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Chtimes changes the access and modification times of the named
|
||||
// file, similar to the Unix utime() or utimes() functions.
|
||||
//
|
||||
|
@ -684,6 +684,9 @@ func Chown(path string, uid int, gid int) (errno int) { return EWINDOWS }
|
||||
func Lchown(path string, uid int, gid int) (errno int) { return EWINDOWS }
|
||||
func Fchown(fd int, uid int, gid int) (errno int) { return EWINDOWS }
|
||||
|
||||
// TODO(brainman): use FlushFileBuffers Windows api to implement Fsync.
|
||||
func Fsync(fd int) (errno int) { return EWINDOWS }
|
||||
|
||||
func Getuid() (uid int) { return -1 }
|
||||
func Geteuid() (euid int) { return -1 }
|
||||
func Getgid() (gid int) { return -1 }
|
||||
|
Loading…
Reference in New Issue
Block a user