2016-03-19 14 views
0

私は、pthread APIに基づいて、Cでのスレッド化のためのヘルパーライブラリを作成しています。などpthread_set_affinity_np、​​、pthread_set_qos_class_self_npx_npの利用可能なテストpthread関数 - C/C++

として非標準のGNU拡張機能です多くのpthread機能があり、私は、オペレーティング・システムが定義するまで見なくてもこれらの非ポータブルの機能が利用可能であるかどうかをテストするためのマクロを使用することができますどのような方法があります何?

+0

'dlopen()' 'pthread'ライブラリ、次に関数名の' dlsym() '? – EOF

+0

@EOF私はこれらの機能について聞いたことがありません。私はそれらを見上げます。 –

+0

@EOF実行時にこれらの関数が呼び出されたようですね。理想的には私はプリプロセッサのソリューションが好きです。 –

答えて

1

これは、人々がAutoconfを使って解決する問題のようなものです。例えば、あなたのconfigure.acファイルでこのようなsinppet:

AC_CHECK_DECLS(
    [pthread_attr_setaffinity_np, pthread_clear_exit_np, pthread_set_qos_class_self_np], 
    [], [], [[#include <pthread.h>]]) 

はそれがある場合、宣言が存在するか1ない場合は0に定義され、マクロHAVE_DECL_PTHREAD_ATTR_SETAFFINITY_NPHAVE_DECL_PTHREAD_CLEAR_EXIT_NPHAVE_DECL_PTHREAD_SET_QOS_CLASS_SELF_NPを定義します。

+0

私はautoconfを考えたことがないでしょう。私はかつてこれを使ったことがない。先端に感謝します。 –

関連する問題