Qt 获取自身运行时的进程ID

最近用qt做嵌入式上位机开发,需要观测下程序的内存占用情况,根据搜到的资料需要读取proc下对应的自身进程的文件信息,找了一圈资料都没一个说到点上的,都是说的QProcess什么的,最后还是在国外的网站上找到了,其实很简单,Qt自带就有了的,一开始自己也是这样想,但是苦于找不到。

qint64 pid = QApplication::applicationPid();

那么查看自己的内存占用信息就简单了

	qint64 pid = QApplication::applicationPid();
    QString fileName = "/proc/"+QString::number(pid)+"/status";
    qDebug()<<fileName;
    QFile file(fileName);
    if(!file.open(QIODevice::ReadOnly|QIODevice::Text)){
        return;
    }
    qDebug()<<file.readAll();

运行之后打印信息如下

"Name:	XTHmi
Umask:	0022
State:	R (running)
Tgid:	173
Ngid:	0
Pid:	173
PPid:	171
TracerPid:	0
Uid:	0	0	0	0
Gid:	0	0	0	0
FDSize:	32
Groups:	0 10 
NStgid:	173
NSpid:	173
NSpgid:	171
NSsid:	171
VmPeak:	   36840 kB
VmSize:	   36840 kB
VmLck:	       0 kB
VmPin:	       0 kB
VmHWM:	   11188 kB
VmRSS:	   11188 kB
RssAnon:	    2628 kB
RssFile:	    8436 kB
RssShmem:	     124 kB
VmData:	    2856 kB
VmStk:	     132 kB
VmExe:	     128 kB
VmLib:	   17272 kB
VmPTE:	      34 kB
VmSwap:	       0 kB
CoreDumping:	0
Threads:	1
SigQ:	0/716
SigPnd:	0000000000000000
ShdPnd:	0000000000000000
SigBlk:	0000000000000000
SigIgn:	0000000000000000
SigCgt:	0000000180015eef
CapInh:	0000000000000000
CapPrm:	0000003fffffffff
CapEff:	0000003fffffffff
CapBnd:	0000003fffffffff
CapAmb:	0000000000000000
NoNewPrivs:	0
Speculation_Store_Bypass:	unknown
Cpus_allowed:	f
Cpus_allowed_list:	0-3
voluntary_ctxt_switches:	1076
nonvoluntary_ctxt_switches:	296

每个信息代表的什么大家关键字搜下就好了

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值