...
Run Format

Source file src/os/executable_procfs.go

Documentation: os

  // 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.
  
  // +build linux netbsd openbsd dragonfly nacl
  
  package os
  
  import (
  	"errors"
  	"runtime"
  )
  
  // We query the executable path at init time to avoid the problem of
  // readlink returns a path appended with " (deleted)" when the original
  // binary gets deleted.
  var executablePath, executablePathErr = func() (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"
  	case "netbsd":
  		procfn = "/proc/curproc/exe"
  	case "openbsd":
  		procfn = "/proc/curproc/file"
  	case "dragonfly":
  		procfn = "/proc/curproc/file"
  	}
  	return Readlink(procfn)
  }()
  
  func executable() (string, error) {
  	return executablePath, executablePathErr
  }
  

View as plain text