ですから、この質問はまさに「OS X と Linux で time.h が同じでないのはなぜですか?」ということです。しかし、私はそれらの違いと和解しました。
「Unix」システムでタイマーを作成するには、このチュートリアルhttp://www.helsinki.fi/atk/unix/dec_manuals/DOC_40D/APS33DTE/DOCU_007.HTM#timer-type-secに従いました
これには、 を使用し<sys/time.h>
て を呼び出しtimer_create()
てから、シグナル タイプのシグナル ハンドラを設定する必要があります。これは私が行う方法を知っています。問題は、OS X で同じことがどのように達成されるのかということです。
注意すべき重要な点は、タイマー アラームに関連付けられたメタデータをシグナル ハンドラーに渡すことができるように、これらのタイマーはリアルタイムである必要があることです。つまり、非同期的にキューに入れられ、 のsa_sigaction
フィールドを使用する必要があります。struct sigaction
これについては、http://www.helsinki.fi/atk/unix/dec_manuals/DOC_40D/APS33DTE/DOCU_006.HTM#sigevent-sec で詳しく説明しています。