Linux扩展(例如CLOCK_PROCESS_CPUTIME_ID
)的计时器功能是否包含setitimer
的超集?
换句话说,Linux上的timer_create
和timer_settime
是否可以用于实现setitimer
?
从粗略的外观看,似乎可以做到,只需在struct itimerval
/ struct itimerspec
之间进行翻译,然后在struct sigevent
参数中设置正确的信号并加上正确的时钟
时钟部分似乎有问题。
CLOCK_MONOTONIC
似乎是timer_settime
的{{1}}的{{1}}对应物,而setitimer
却是ITIMER_REAL
的对应物。正确吗? CLOCK_PROCESS_CPUTIME_ID
几点钟了?
POSIX spec of setitimer中的以下注释:
应用程序用法应用程序应使用timer_gettime()和 使用timer_settime()函数代替过时的getitimer()和 setitimer()函数。
还强烈建议将ITIMER_PROF
/ ITIMER_VIRTUAL
完全取代setitimer
。