gpt4 book ai didi

c - 是否可以在 Android 中使用 sched_setaffinity 设置亲和性?

转载 作者:太空狗 更新时间:2023-10-29 16:38:02 25 4
gpt4 key购买 nike

是否可以在使用 Android NDK 编译的原生 C 代码中设置 CPU 亲和性?由于系统使用的是 Linux 内核,应该可以使用 sched_setaffinity/sched_getaffinity 函数,但是当我使用 NDK 编译时,出现错误,提示 cpu_set_t 类型未知(用作函数的参数) .还有其他方法可以做到这一点吗?当我使用 CodeSourcerys ARM 编译器 (arm-none-linux-gnueabi-gcc) 编译时,这似乎不是问题,因此系统显然支持所需的系统调用。

最佳答案

以下代码适用于 NDK r5 或更新版本:

#include <sys/syscall.h>
#include <pthread.h>
void setCurrentThreadAffinityMask(int mask)
{
int err, syscallres;
pid_t pid = gettid();
syscallres = syscall(__NR_sched_setaffinity, pid, sizeof(mask), &mask);
if (syscallres)
{
err = errno;
LOGE("Error in the syscall setaffinity: mask=%d=0x%x err=%d=0x%x", mask, mask, err, err);
}
}

关于c - 是否可以在 Android 中使用 sched_setaffinity 设置亲和性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7467848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com