func()

in sigar_aix.go [522:550]


func (self *ProcExe) Get(pid int) error {
	/* If buffer is not large enough, args are truncated */
	buf := make([]byte, 8192)
	info := C.struct_procsinfo64{}
	info.pi_pid = C.pid_t(pid)

	if _, err := C.getargs(unsafe.Pointer(&info), C.sizeof_struct_procsinfo64, (*C.char)(&buf[0]), 8192); err != nil {
		return err
	}

	bbuf := bytes.NewBuffer(buf)

	// retrieve the first argument
	cmd, err := bbuf.ReadBytes(0)
	if err != nil {
		return err
	}
	self.Name = string(chop(cmd))

	cwd, err := os.Readlink("/proc/" + strconv.Itoa(pid) + "/cwd")
	if err != nil {
		if !os.IsNotExist(err) {
			return err
		}
	}
	self.Cwd = cwd

	return nil
}