LINUX.ORG.RU

Идиотский вопрос по сигналам

 , ,


0

3

Претендую на самый идиотский вопрос по сигналам в программировании под Linux в частности, и под POSIX....

Есть прекрасные сигналы SIGUSR1 и SIGUSR2, но их жалко - их всего два. Они стандартно определены.

Могу ли я использовать свои сигналы, которые нигде не описаны (ну или я этого не нашёл)... например:

#define SIGUSR3_MUTHER_FUCKER (123)

★★★★★
Ответ на: комментарий от wandrien

Вот тебе, кстати, табличка со значениями констант для разных ОС.

Это просто дефайны, описанные в стандартах. Что мешает мне прописать kill(otherPID,9), вместо kill(otherPID, SIGKILL)?

drfaust ★★★★★
() автор топика
Ответ на: комментарий от drfaust

Что мешает мне прописать kill(otherPID,9), вместо kill(otherPID, SIGKILL)?

Ничего не мешает. SIGKILL отработает на уровне ядра и убьёт твой процесс.

А вообще ты уже куда-то далеко отошел от исходной постановки вопроса.

То ты не хотел использовать стандартные сигналы, то готов их переопределить.

wandrien ★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

То ты не хотел использовать стандартные сигналы, то готов их переопределить.

Это вы со своей болтологией путаете мысли. Это был отвтет на твою «стандартную табличку»

Что мне мешает вызвать kill(otherPID,123), если процесс с otherPID заранее поставил обработчик на 123 через банальный signal(123, my_fucking_handler)?

drfaust ★★★★★
() автор топика
Последнее исправление: drfaust (всего исправлений: 1)
Ответ на: комментарий от drfaust

Тем, что в банальной реализации signal(2) не предусмотрено существование 123-го сигнала.

ERRORS
       EINVAL signum is invalid.
wandrien ★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

От теперь понятно. Вопрос вроде закрыт.

Т.е. размер таблицы обработчиков сигналов для каждого процесса захардкорен и не может превышать, судя по мануалам SIGRTMAX (64)...

drfaust ★★★★★
() автор топика