我在 Android 上设置调度策略的一段代码遇到了运行时问题。代码使用“aarch64-linux-androideabi21-clang++”编译并运行成功,但使用“aarch64-linux-musl-g++”编译时在运行时失败
#include <iostream>
#include <sched.h>
#include <unistd.h>
int main() {
struct sched_param param {};
param.sched_priority = 1;
// Set real-time scheduling policy with priority 1
int result = sched_setscheduler(0, SCHED_OTHER, ¶m);
if (result == 0) {
std::cout << "Scheduling policy set successfully.\n";
} else {
std::cerr << "Error setting scheduling policy.\n";
}
return 0;
}
这是撰写本文时 sched_setscheduler
的
musl 实现的完整内容:
int sched_setscheduler(pid_t pid, int sched, const struct sched_param *param)
{
return __syscall_ret(-ENOSYS);
}
它不执行任何操作,只是返回一个错误。