123456789101112131415161718192021222324252627282930313233343536 |
- // Copyright 2016 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.
- package os
- import (
- "syscall"
- _ "unsafe" // for go:linkname
- )
- // solarisExecutablePath is defined in the runtime package.
- func solarisExecutablePath() string
- var initCwd, initCwdErr = Getwd()
- func executable() (string, error) {
- path := solarisExecutablePath()
- if len(path) == 0 {
- path, err := syscall.Getexecname()
- if err != nil {
- return path, err
- }
- }
- if len(path) > 0 && path[0] != '/' {
- if initCwdErr != nil {
- return path, initCwdErr
- }
- if len(path) > 2 && path[0:2] == "./" {
- // skip "./"
- path = path[2:]
- }
- return initCwd + "/" + path, nil
- }
- return path, nil
- }
|