所以这个问题真的是“为什么 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 上实现同样的事情?
需要注意的关键是这些计时器需要是实时的,即异步排队并且必须使用 a 的sa_sigaction字段struct sigaction,以便与计时器警报关联的元数据可以传递给信号处理程序。这在这里有更详细的描述http://www.helsinki.fi/atk/unix/dec_manuals/DOC_40D/APS33DTE/DOCU_006.HTM#sigevent-sec。