程序中获取NvidiaGPU、CPU温度方法
程序中获取NvidiaGPU、CPU温度方法
1.使用tegrastats命令可得到系统相关信息。
2.取出CPU关键值来。
tegrastats |grep -Eo 'CPU@[0-9][0-9]\.[0-9]|CPU@[0-9][0-9]'![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331174639871.png)
3.一直停不下来怎么办?(或者说只想取一次怎么办)
(tegrastats |grep -Eo 'CPU@[0-9][0-9]\.[0-9]|CPU@[0-9][0-9]'&)&&sleep 1.5&&pkill tegrastats
放到后台执行一秒钟杀掉。
4.嵌入到程序中。
FILE *fd;
char cpu_tempture[20];
char gpu_tempture[20];
fd=popen("(./tegrastats |grep -Eo 'CPU@[0-9][0-9]\\.[0-9]|CPU@[0-9][0-9]'&)&&sleep 1.5&&pkill tegrastats","r");
fgets(cpu_tempture,sizeof(cpu_tempture),fd);
sleep(2);
fd=popen("(./tegrastats |grep -Eo 'GPU@[0-9][0-9]\\.[0-9]|GPU@[0-9][0-9]'&)&&sleep 1.5&&pkill tegrastats","r");
fgets(gpu_tempture,sizeof(gpu_tempture),fd);
float cpu_temp = atof(cpu_tempture+4);
float gpu_temp = atof(gpu_tempture+4);
printf(" --- cpu_temperature:\033[5;31;40m%4.1f\033[0m --- gpu_temperature:\033[5;31;40m%4.1f\033[0m\n",cpu_temp,gpu_temp);