func (p Proc) NewStatus() (ProcStatus, error) {
	data, err := util.ReadFileNoStat(p.path("status"))
	if err != nil {
		return ProcStatus{}, err
	}
	s := ProcStatus{PID: p.PID}
	lines := strings.Split(string(data), "\n")
	for _, line := range lines {
		if !bytes.Contains([]byte(line), []byte(":")) {
			continue
		}
		kv := strings.SplitN(line, ":", 2)
		k := string(strings.TrimSpace(kv[0]))
		v := string(strings.TrimSpace(kv[1]))
		v = string(bytes.Trim([]byte(v), " kB"))
		vKBytes, _ := strconv.ParseUint(v, 10, 64)
		vBytes := vKBytes * 1024
		s.fillStatus(k, v, vKBytes, vBytes)
	}
	return s, nil
}
NewStatus returns the current status information of the process.
package procfs
import (
	"bytes"
	"strconv"
	"strings"
	"github.com/prometheus/procfs/internal/util"
)
type ProcStatus struct {
	PID int
	Name string
	TGID int
	VmPeak uint64  
	VmSize uint64  
	VmLck uint64  
	VmPin uint64  
	VmHWM uint64  
	VmRSS uint64  
	RssAnon uint64  
	RssFile uint64  
	RssShmem uint64  
	VmData uint64  
	VmStk uint64  
	VmExe uint64  
	VmLib uint64  
	VmPTE uint64  
	VmPMD uint64  
	VmSwap uint64  
	HugetlbPages uint64
	VoluntaryCtxtSwitches uint64
	NonVoluntaryCtxtSwitches uint64
	UIDs [4]string
	GIDs [4]string
}