error_unix.go 914 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2009 The Go Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style
  3. // license that can be found in the LICENSE file.
  4. // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
  5. package os
  6. import "syscall"
  7. func isExist(err error) bool {
  8. switch pe := err.(type) {
  9. case nil:
  10. return false
  11. case *PathError:
  12. err = pe.Err
  13. case *LinkError:
  14. err = pe.Err
  15. }
  16. return err == syscall.EEXIST || err == ErrExist
  17. }
  18. func isNotExist(err error) bool {
  19. switch pe := err.(type) {
  20. case nil:
  21. return false
  22. case *PathError:
  23. err = pe.Err
  24. case *LinkError:
  25. err = pe.Err
  26. }
  27. return err == syscall.ENOENT || err == ErrNotExist
  28. }
  29. func isPermission(err error) bool {
  30. switch pe := err.(type) {
  31. case nil:
  32. return false
  33. case *PathError:
  34. err = pe.Err
  35. case *LinkError:
  36. err = pe.Err
  37. }
  38. return err == syscall.EACCES || err == syscall.EPERM || err == ErrPermission
  39. }