如何使用c代码更改cpu频率?
我正在研究一种节能算法,我想改变CPU的频率以节约能源,所以我需要C代码,这样我就可以改变CPU的频率。我尝试了下面的代码,但是代码的问题是它直接执行Linux命令,并且该命令需要root权限。是否有任何方法可以使用C代码更改CPU频率 我的代码是如何使用c代码更改cpu频率?,c,linux,C,Linux,我正在研究一种节能算法,我想改变CPU的频率以节约能源,所以我需要C代码,这样我就可以改变CPU的频率。我尝试了下面的代码,但是代码的问题是它直接执行Linux命令,并且该命令需要root权限。是否有任何方法可以使用C代码更改CPU频率 我的代码是 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char cmd[]="sudo cpufreq-set -
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
char cmd[]="sudo cpufreq-set -c 1 -f 1862Mhz";
system(cmd);
return 0;
}
#包括
#包括
#包括
int main(){
char cmd[]=“sudo cpufreq set-c 1-f 1862Mhz”;
系统(cmd);
返回0;
}
这是内核的工作,用于调节CPU频率。
作为用户空间应用程序,您没有关于当前使用系统的其他进程的足够信息
即使您以root身份运行并且能够发出这样的命令,整个概念也是错误的
查找
DVFS
内核驱动程序,这就是您要做的。使用root权限运行您的程序?如果您想问这个问题,没有其他方法可以从不需要root权限的C程序更改CPU频率。你的使用案例是什么?@Lowerer我正在研究一种节能算法,我想改变CPU的速度以节省能源,因此我需要C代码,以便我可以改变CPU的速度。出于测试目的,你可能必须以root
身份运行你的程序。但是在像Linux这样的多任务系统中,您如何在可能需要在不同时间和/或不同值更改CPU速度的多个用户任务之间进行仲裁呢,它将在调度决策时完成。算法将使用上一个时间间隔的数据,并决定当前时间间隔的CPU速度。