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

の 2 番目のパラメーター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 に答える