github.com/lovishpuri/go-40569/src@v0.0.0-20230519171745-f8623e7c56cf/os/executable_solaris.go (about) 1 // Copyright 2016 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 package os 6 7 import "syscall" 8 9 var executablePath string // set by sysauxv in ../runtime/os3_solaris.go 10 11 var initCwd, initCwdErr = Getwd() 12 13 func executable() (string, error) { 14 path := executablePath 15 if len(path) == 0 { 16 path, err := syscall.Getexecname() 17 if err != nil { 18 return path, err 19 } 20 } 21 if len(path) > 0 && path[0] != '/' { 22 if initCwdErr != nil { 23 return path, initCwdErr 24 } 25 if len(path) > 2 && path[0:2] == "./" { 26 // skip "./" 27 path = path[2:] 28 } 29 return initCwd + "/" + path, nil 30 } 31 return path, nil 32 }