USLEEP - Linux手册页
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)。
Interface | Attribute | Value |
usleep() | Thread safety | MT-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)未指定。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。