Scroll to navigation

sigwait(3) Library Functions Manual sigwait(3)

ИМЯ

sigwait - ожидание сигнала

LIBRARY

Standard C library (libc, -lc)

СИНТАКСИС

#include <signal.h>
int sigwait(const sigset_t *restrict set, int *restrict sig);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

sigwait():


Since glibc 2.26:
_POSIX_C_SOURCE >= 199506L
glibc 2.25 and earlier:
_POSIX_C_SOURCE

ОПИСАНИЕ

The sigwait() function suspends execution of the calling thread until one of the signals specified in the signal set set becomes pending. For a signal to become pending, it must first be blocked with sigprocmask(2). The function accepts the signal (removes it from the pending list of signals), and returns the signal number in sig.

Действие sigwait() тоже, что и sigwaitinfo(2), за исключением:

Функция sigwait() возвращает только номер сигнала, а не структуру siginfo_t, описывающую сигнал.
Функции отличаются возвращаемыми значениями.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении sigwait() возвращает 0. При ошибке возвращается положительный номер ошибки (перечислены в разделе ОШИБКИ).

ОШИБКИ

В set содержится некорректный номер сигнала.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).

Интерфейс Атрибут Значение
sigwait() Безвредность в нитях MT-Safe

ВЕРСИИ

sigwait() is implemented using sigtimedwait(2); consult its NOTES.

В реализации glibc sigwait() просто игнорирует попытки ожидания двух сигналов реального времени, которые используются внутри реализации NPTL. Подробности смотрите в nptl(7).

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001.

ПРИМЕРЫ

Смотрите pthread_sigmask(3).

СМОТРИТЕ ТАКЖЕ

sigaction(2), signalfd(2), sigpending(2), sigsuspend(2), sigwaitinfo(2), sigsetops(3), signal(7)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.

2 мая 2024 г. Linux man-pages 6.8