条件変数で時限待機を使用する pthread コードをいくつか作成しましたが、相対的な待機を確実にするために、pthread_condattr_setclock() を使用して condvar のクロック タイプを CLOCK_MONOTONIC に設定しました。
RHEL4 で pthread_condattr_setclock() をコンパイルしてリンクするには、gcc コマンド ラインに -I/usr/include/nptl と -L/usr/lib/nptl を追加する必要がありました。私の理解では、2.6 カーネル (RHEL4 にある) はデフォルトで NPTL pthread 実装を使用しますが、この機能を使用するためにこれらのパスを明示的に指定する必要があるのはなぜですか?
これを行う必要があるのはこの関数だけです。省略した場合、余分なパスを指定しなくても、すべてが正常にコンパイルおよびリンクされます (ただし、コードの動作は正しくありません)。