备注

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)等)。

遵循规范

4.3 BSD,POSIX.1-2001。 POSIX.1-2001将ualarm()标记为作废。 POSIX.1-2008删除了ualarm()的规范。 4.3BSD,SUSv2和POSIX没有定义任何错误。

UALARM - Linux手册页

Linux程序员手册 第3部分
更新日期: 2017-09-15

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

另外参见

警报(2),getitimer(2),nanosleep(2),select(2),setitimer(2),usleep(3),time(7)

名称

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

返回值

此函数返回以前设置的任何警报剩余的微秒数;如果没有未决的警报,则返回0。

说明

ualarm()函数使信号SIGALRM在(不小于)usc微秒后发送到调用过程。任何系统活动,处理呼叫所花费的时间或系统计时器的粒度都可能会稍微延长延迟。

除非被捕获或忽略,否则SIGALRM信号将终止该过程。

如果interval参数不为零,则在第一个间隔后每隔微秒发送一次SI​​GALRM信号。

错误说明

EINTR
被信号打断;参见signal(7)。
EINVAL
usecs或interval不小于1000000。(在被认为是错误的系统上。)

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
ualarm()Thread safetyMT-Safe
日期:2019-08-20 18:01:34 来源:oir作者:oir