Pet*_*lák 4 filesystems synchronization go
syncfsGo中有导出该函数的包吗?我想同步特定的文件系统。
我找到了syscall包,但它只导出FSync,Fdatasync和Sync.
小智 5
syncfs只是一个系统调用,在Go中很容易触发。
但是,由于该syscall包没有syncfs系统调用常量,因此您可以使用golang.org/x/sys/unix已定义的系统调用常量(并不是真正必要,因为系统调用常量只是一个数字,但使用该包不会有什么坏处)。
import "golang.org/x/sys/unix"
func syncfs(fd int) error {
_, _, err := unix.Syscall(unix.SYS_SYNCFS, uintptr(fd), 0, 0)
if err != 0 {
return err
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
为了完整起见,这里是仅使用该包的解决方案syscall:
import "syscall"
func syncfs(fd int) error {
_, _, err := syscall.Syscall(306, uintptr(fd), 0, 0)
if err != 0 {
return err
}
return nil
}
Run Code Online (Sandbox Code Playgroud)