SIGRTMIN и SIGRTMAX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
SIGRTMIN — SIGRTMAX
Описание: Пользовательские сигналы реального времени
По умолчанию: завершение процесса
коды SA_SIGINFO
(не имеет специфических кодов)

В POSIX-системах, SIGRTMIN и SIGRTMAX — первый и последний из диапазона пользовательских сигналов, который может быть использован для межпроцессных коммуникаций в реальном времени.

SIGRTMIN и SIGRTMAX — целочисленные константы, определенные в заголовочном файле signal.h. Для определения второго и последующих сигналов используют конструкции типа «SIGRTMIN + n» (где n — натуральное число). Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.

Этимология[править | править код]

SIG — общий префикс сигналов (от англ. signal), RT — аббревиатура англ. real time — реального времени, MIN — сокращение англ. minimum — минимальный (по значению), MAX — сокращение англ. maximum — максимальный.

Использование[править | править код]

Сигналы с SIGRTMIN по SIGRTMAX, являются набором сигналов, предназначенных для использования программами для собственных целей.

На разных системах может быть реализовано разное количество сигналов реального времени, в том числе только один SIGRTMIN.

Сигналы реального времени имеют некоторые свойства, отличающие их от остальных сигналов:

  • можно послать несколько сигналов реального времени с гарантией доставки каждого,
  • с сигналом реального времени можно передать целочисленное значение или указатель,
  • гарантируется, что сигналы реального времени будут доставлены в той последовательности, в которой они были посланы.

Реализация потоков в glibc использует для внутренних нужд два (для NPTL, Linux версии 2.6 и выше) или три (для LinuxThreads, Linux до версии 2.6) сигнала реального времени.[1] Это является ещё одной причиной того, что программы не должны использовать номер сигнала напрямую.

Примечания[править | править код]