UALARM - Linux手册页
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
ualarm-在给定的微秒数后调度信号
语法
#include <unistd.h> useconds_t ualarm(useconds_t usecs, useconds_t interval);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
ualarm():
- Since glibc 2.12:
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) || /* Glibc since 2.19: */ _DEFAULT_SOURCE || /* Glibc versions <= 2.19: */ _BSD_SOURCE
- Before glibc 2.12:
- _BSD_SOURCE || _XOPEN_SOURCE>= 500
说明
ualarm()函数使信号SIGALRM在(不小于)usc微秒后发送到调用过程。任何系统活动,处理呼叫所花费的时间或系统计时器的粒度都可能会稍微延长延迟。
除非被捕获或忽略,否则SIGALRM信号将终止该过程。
如果interval参数不为零,则在第一个间隔后每隔微秒发送一次SIGALRM信号。
返回值
此函数返回以前设置的任何警报剩余的微秒数;如果没有未决的警报,则返回0。
错误说明
- EINTR
- 被信号打断;参见signal(7)。
- EINVAL
- usecs或interval不小于1000000。(在被认为是错误的系统上。)
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
ualarm() | Thread safety | MT-Safe |
遵循规范
4.3 BSD,POSIX.1-2001。 POSIX.1-2001将ualarm()标记为作废。 POSIX.1-2008删除了ualarm()的规范。 4.3BSD,SUSv2和POSIX没有定义任何错误。
备注
POSIX.1-2001没有指定usecs参数为0时会发生什么。在Linux(可能还有大多数其他系统)上,其作用是取消所有未决的警报。
useconds_t类型是无符号整数类型,能够保存[0,1000000]范围内的整数。在原始的BSD实现中,以及在2.1版之前的glibc中,ualarm()的参数改为键入unsigned int。如果程序从不明确提及useconds_t,它们将具有更高的可移植性。
此功能与其他计时器功能的交互,例如alarm(2),sleep(3),nanosleep(2),setitimer(2),timer_create(2),timer_delete(2),timer_getoverrun(2),timer_gettime(2) ,timer_settime(2),usleep(3)未指定。
该功能已过时。请改用setitimer(2)或POSIX间隔计时器(timer_create(2)等)。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。