Go中是否有导出 syncfs
函数的包?我想同步一个特定的文件系统。
我找到了 syscall 包,但它只导出 FSync
、 Fdatasync
和 Sync
。
最佳答案
syncfs
只是一个系统调用,在 Go 中很容易触发。
但是,由于 syscall
package 没有 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
}
为了完整起见,这里是仅使用
syscall
包的解决方案:import "syscall"
func syncfs(fd int) error {
_, _, err := syscall.Syscall(306, uintptr(fd), 0, 0)
if err != 0 {
return err
}
return nil
}
关于go - 在 Go 中同步文件系统 (syncfs),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31697163/