gettimerid 子例程

用途

按进程分配时间间隔计时器。

标准 C 库 (libc.a)

语法

#include <sys/time.h>
#include <sys/events.h>

timer_t gettimerid( timertype,  notifytype)
int timertype;
int notifytype;

描述

gettimerid 子例程用于根据具有给定计时器类型的计时器来分配每个进程的时间间隔计时器。 唯一标识用于标识时间间隔计时器请求中的时间间隔计时器。 (有关更多信息,请参阅 getinterval 子例程)。 特定计时器类型 timertype 参数是在 sys/time.h 文件中定义的,可以标识系统范围的计时器或每个进程的计时器。 通知进程计时器事件到期的机制是在 sys/events.h 文件中定义的 notifytype 参数。

timertype 参数表示下列其中一种计时器类型:

描述
TimeOfDay POSIX 系统时钟计时器。 此计时器表示系统的时间时钟。 对于此计时器,由 gettimer 子例程返回并由 settimer 子例程指定的值表示自 00:00:00 GMT , January 1 , 1970 以来的时间量 (以纳秒为单位)。
TIMERID_ALRM 警报计时器。 此计时器在对 settimer 子例程的调用中指定的计时器处调度 SIGALRM 信号的传递。
TIMERID_REAL 实时计时器。 实时计时器实时递减。 当此计时器到期时,将传递 SIGALRM 信号。
timerid_real_th 每个线程的实时计时器。 实时递减并在到期时传递 SIGTALRM 信号。 SIGTALRM 发送到设置计时器的线程。 每个线程都有自己的计时器,可以操作自己的计时器。 此计时器仅受 1: 1 线程模型支持。 如果在 M: N 线程模型中使用计时器,那么可能会出现未定义的结果。
timerid_virtual 虚拟计时器。 虚拟计时器在进程虚拟时间中递减。 它仅在进程以用户方式执行时运行。 SIGVTALRM 信号在到期时传递。
时间 (TIMERID_PROF) 概要分析计时器。 当以用户方式运行时以及当系统为进程运行时,概要分析计时器都将减小。 它设计为供进程用于以统计方式对其执行进行概要分析。 当概要分析计时器到期时,将传递 SIGPROF 信号。

通知值为 DELIVERY_SIGNAL 的时间间隔计时器在 exec 子例程中继承。

参数

描述
通知类 通知计时器事件到期的进程。
定时器类型 标识系统范围的计时器或每个进程的计时器。

返回值

如果 gettimerid 子例程成功,那么它将返回一个 timer_t 结构,该结构可以传递到每个进程的时间间隔计时器子例程,例如 getinterval 子例程。 如果发生错误,将返回值-1并设置errno

错误代码

如果gettimerid子程序失败,将返回值-1并将errno设置为下列错误代码之一:

描述
再次 调用进程已分配与此实现的指定计时器类型相关联的所有时间间隔计时器。
EINVAL 未定义指定的计时器类型。