1

当我尝试使用 XCode 构建它时,为什么以下代码会生成错误“没有匹配的函数来调用 'pthread_getschedparam'”:

#if MACRO_OSX_PLATFORM()
#include <pthread.h>
#endif
...
struct sched_param sp = {0};
pthread_getschedparam(pthread_self(), SCHED_OTHER, &sp);
return sp.sched_priority;

有什么想法吗?我错过了什么重要的东西吗?顺便说一句,检查 OSX 平台的宏 100% 有效。

4

1 回答 1

1

to的第二个参数pthread_getschedparam是一个指向int的指针。相反,您传入了一个 int 常量 (SCHED_OTHER)。

来自OS X 文档

int pthread_getschedparam(pthread_t thread, int *restrict policy, struct sched_param *restrict param);

重点补充。你的意思是这样的:

int dummy; // We don't care what current policy is
struct sched_param sp = {0};
pthread_getschedparam(pthread_self(), &dummy, &sp);
return sp.sched_priority;
于 2013-09-11T15:37:13.077 回答