github.com/tetratelabs/wazero@v1.2.1/internal/sysfs/unlink_windows.go (about) 1 //go:build windows 2 3 package sysfs 4 5 import ( 6 "os" 7 "syscall" 8 9 "github.com/tetratelabs/wazero/internal/platform" 10 ) 11 12 func Unlink(name string) syscall.Errno { 13 err := syscall.Unlink(name) 14 if err == nil { 15 return 0 16 } 17 errno := platform.UnwrapOSError(err) 18 if errno == syscall.EBADF { 19 lstat, errLstat := os.Lstat(name) 20 if errLstat == nil && lstat.Mode()&os.ModeSymlink != 0 { 21 errno = platform.UnwrapOSError(os.Remove(name)) 22 } else { 23 errno = syscall.EISDIR 24 } 25 } 26 return errno 27 }