X7ROOT File Manager
Current Path:
/opt/golang/1.22.0/src/os/exec
opt
/
golang
/
1.22.0
/
src
/
os
/
exec
/
📁
..
📄
bench_test.go
(492 B)
📄
dot_test.go
(6.13 KB)
📄
env_test.go
(1.66 KB)
📄
example_test.go
(3.49 KB)
📄
exec.go
(41.16 KB)
📄
exec_linux_test.go
(1.23 KB)
📄
exec_other_test.go
(286 B)
📄
exec_plan9.go
(608 B)
📄
exec_posix_test.go
(6.79 KB)
📄
exec_test.go
(47.62 KB)
📄
exec_unix.go
(635 B)
📄
exec_unix_test.go
(313 B)
📄
exec_windows.go
(721 B)
📄
exec_windows_test.go
(2.37 KB)
📁
internal
📄
internal_test.go
(1.21 KB)
📄
lp_linux_test.go
(2.33 KB)
📄
lp_plan9.go
(1.94 KB)
📄
lp_test.go
(737 B)
📄
lp_unix.go
(2.44 KB)
📄
lp_unix_test.go
(762 B)
📄
lp_wasm.go
(1012 B)
📄
lp_windows.go
(5.98 KB)
📄
lp_windows_test.go
(16.31 KB)
📄
read3.go
(2.16 KB)
Editing: lp_unix.go
// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build unix package exec import ( "errors" "internal/syscall/unix" "io/fs" "os" "path/filepath" "strings" "syscall" ) // ErrNotFound is the error resulting if a path search failed to find an executable file. var ErrNotFound = errors.New("executable file not found in $PATH") func findExecutable(file string) error { d, err := os.Stat(file) if err != nil { return err } m := d.Mode() if m.IsDir() { return syscall.EISDIR } err = unix.Eaccess(file, unix.X_OK) // ENOSYS means Eaccess is not available or not implemented. // EPERM can be returned by Linux containers employing seccomp. // In both cases, fall back to checking the permission bits. if err == nil || (err != syscall.ENOSYS && err != syscall.EPERM) { return err } if m&0111 != 0 { return nil } return fs.ErrPermission } // LookPath searches for an executable named file in the // directories named by the PATH environment variable. // If file contains a slash, it is tried directly and the PATH is not consulted. // Otherwise, on success, the result is an absolute path. // // In older versions of Go, LookPath could return a path relative to the current directory. // As of Go 1.19, LookPath will instead return that path along with an error satisfying // errors.Is(err, ErrDot). See the package documentation for more details. func LookPath(file string) (string, error) { // NOTE(rsc): I wish we could use the Plan 9 behavior here // (only bypass the path if file begins with / or ./ or ../) // but that would not match all the Unix shells. if strings.Contains(file, "/") { err := findExecutable(file) if err == nil { return file, nil } return "", &Error{file, err} } path := os.Getenv("PATH") for _, dir := range filepath.SplitList(path) { if dir == "" { // Unix shell semantics: path element "" means "." dir = "." } path := filepath.Join(dir, file) if err := findExecutable(path); err == nil { if !filepath.IsAbs(path) { if execerrdot.Value() != "0" { return path, &Error{file, ErrDot} } execerrdot.IncNonDefault() } return path, nil } } return "", &Error{file, ErrNotFound} } // lookExtensions is a no-op on non-Windows platforms, since // they do not restrict executables to specific extensions. func lookExtensions(path, dir string) (string, error) { return path, nil }
Upload File
Create Folder