eaccess.mx raw

   1  // Copyright 2024 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  
   5  //go:build unix
   6  
   7  package unix
   8  
   9  import (
  10  	"runtime"
  11  	"syscall"
  12  )
  13  
  14  func Eaccess(path string, mode uint32) error {
  15  	if runtime.GOOS == "android" {
  16  		// syscall.Faccessat for Android implements AT_EACCESS check in
  17  		// userspace. Since Android doesn't have setuid programs and
  18  		// never runs code with euid!=uid, AT_EACCESS check is not
  19  		// really required. Return ENOSYS so the callers can fall back
  20  		// to permission bits check.
  21  		return syscall.ENOSYS
  22  	}
  23  	return faccessat(AT_FDCWD, path, mode, AT_EACCESS)
  24  }
  25