usleep -
задерживает
выполнение
на
определенное
количество
микросекунд
Standard C library (
libc,
-lc)
#include <unistd.h>
int usleep(useconds_t usec);
usleep():
Since glibc 2.12:
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
|| /* glibc >= 2.19: */ _DEFAULT_SOURCE
|| /* glibc <= 2.19: */ _BSD_SOURCE
Before glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500
Функция
usleep()
приостанавливает
выполнение
вызвавшей
нити на (не
менее)
usec
микросекунд.
Остановка
может
продлиться
слегка
больше при
большой
загруженности
системы,
из-за,
собственно,
времени
обработки
этого
вызова или
из-за
неточности
хода
системных
часов.
The
usleep() function returns 0 on success. On error, -1 is returned,
with
errno set to indicate the error.
- EINTR
- Прервано
сигналом;
см. signal(7).
- EINVAL
- Значение
usec больше
или равно 1000000
(в тех
системах,
где это
считается
ошибкой).
Описание
терминов
данного
раздела
смотрите в
attributes(7).
Интерфейс |
Атрибут |
Значение |
usleep() |
Безвредность
в нитях |
MT-Safe |
4.3BSD, POSIX.1-2001. В POSIX.1-2001 эта
функция
объявлена
устаревшей;
вместо неё
используйте
nanosleep(2). Из POSIX.1-2008
описание
usleep() было
удалено.
On the original BSD implementation, and before glibc 2.2.2, the return type of
this function is
void. The POSIX version returns
int, and this
is also the prototype used since glibc 2.2.2.
Возвращаемая
ошибка
EINVAL
определена
только в SUSv2 и
POSIX.1-2001.
Взаимодействие
этой
функции с
сигналом
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),
не
определено.
alarm(2),
getitimer(2),
nanosleep(2),
select(2),
setitimer(2),
sleep(3),
ualarm(3),
useconds_t(3type),
time(7)
Русский
перевод
этой
страницы
руководства
был сделан
Azamat Hackimov <
[email protected]>, Dmitriy Ovchinnikov
<
[email protected]>, Dmitry Bolkhovskikh <
[email protected]>,
Katrin Kutepova <
[email protected]>, Yuri Kozlov
<
[email protected]> и Иван
Павлов <
[email protected]>
Этот
перевод
является
бесплатной
документацией;
прочитайте
Стандартную
общественную
лицензию GNU
версии 3
или более
позднюю,
чтобы
узнать об
условиях
авторского
права. Мы не
несем
НИКАКОЙ
ОТВЕТСТВЕННОСТИ.
Если вы
обнаружите
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
отправьте
электронное
письмо на
[email protected]