File size: 658 Bytes
e36aeda | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | // 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.
//go:build linux
package os
import (
"errors"
"internal/stringslite"
"runtime"
)
func executable() (string, error) {
var procfn string
switch runtime.GOOS {
default:
return "", errors.New("Executable not implemented for " + runtime.GOOS)
case "linux", "android":
procfn = "/proc/self/exe"
}
path, err := Readlink(procfn)
// When the executable has been deleted then Readlink returns a
// path appended with " (deleted)".
return stringslite.TrimSuffix(path, " (deleted)"), err
}
|