USLEEP - Linux手册页

时间:2019-08-20 18:01:35  来源:igfitidea点击:

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

名称

usleep-暂停执行微秒间隔

语法

#include <unistd.h>

int usleep(useconds_t usec);

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

usleep():

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

说明

usleep()函数将调用线程的执行挂起(至少)usec微秒。睡眠可能会因系统活动,处理呼叫所花费的时间或系统计时器的粒度而略微延长。

返回值

usleep()函数成功返回0。发生错误时,将返回-1,并设置errno以指示错误原因。

错误说明

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

属性

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

InterfaceAttributeValue
usleep()Thread safetyMT-Safe

遵循规范

4.3 BSD,POSIX.1-2001。 POSIX.1-2001宣布此功能作废;使用nanosleep(2)代替。 POSIX.1-2008删除了usleep()的规范。

在原始的BSD实现中,以及在2.2.2之前的glibc中,此函数的返回类型为void。 POSIX版本返回int,这也是从glibc 2.2.2开始使用的原型。

SUSv2和POSIX.1-2001仅记录了EINVAL错误返回。

备注

useconds_t类型是无符号整数类型,能够保存[0,1000000]范围内的整数。如果程序从不明确提及此类型,则它们将更具可移植性。用

#include <unistd.h>
...
    unsigned int usecs;
...
    usleep(usecs);

此功能与SIGALRM信号以及其他计时器功能的交互,例如alarm(2),sleep(3),nanosleep(2),setitimer(2),timer_create(2),timer_delete(2),timer_getoverrun(2) ),timer_gettime(2),timer_settime(2),ualarm(3)未指定。

另外参见

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

出版信息

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