sys_unix.go 505 B

123456789101112131415161718192021222324252627282930313233343536
  1. // +build !windows
  2. package vfs
  3. import (
  4. "errors"
  5. "os"
  6. "syscall"
  7. "golang.org/x/sys/unix"
  8. )
  9. var (
  10. defaultUID, defaultGID int
  11. )
  12. func init() {
  13. defaultUID = os.Getuid()
  14. defaultGID = os.Getuid()
  15. if defaultUID < 0 {
  16. defaultUID = 65534
  17. }
  18. if defaultGID < 0 {
  19. defaultGID = 65534
  20. }
  21. }
  22. func (fi FileInfo) getFileInfoSys() interface{} {
  23. return &syscall.Stat_t{
  24. Uid: uint32(defaultUID),
  25. Gid: uint32(defaultGID)}
  26. }
  27. func isCrossDeviceError(err error) bool {
  28. return errors.Is(err, unix.EXDEV)
  29. }