Может кто-нибудь объяснить разницу между sigaction и signal. Я знаю, что сигнализация работает по-разному в зависимости от того, на какой машине вы работаете, т. е. на Mac, Windows или Linux, и что sigaction работает одинаково на всех платформах. Но мой вопрос в том, почему это так, потому что я пытался использовать сигнал на разных платформах и получил тот же результат. Также какой из них вы, ребята, порекомендовали бы использовать для лучшей практики.
Sigaction против сигнала
comment
Возможный дубликат В чем разница между sigaction и signal?
- person pilcrow   schedule 03.05.2016
Ответы (1)
Я мало что знаю о sigaction
и signal
. Но то, что я знаю, это то, что:
- Вызов
sigaction
более сложен в использовании, чем вызовsignal
(как вы уже знаете). sigaction
позволяет получить дополнительную информацию о сигнале, полученном вашей программой (см. структуруsiginfo_t
).- Согласно книге Майкла КЕРРИСКа: "Интерфейс программирования Linux" (гл. 22, стр. 456): "... рекомендуется всегда использовать
sigaction
, а не чемsignal
для установки обработчиков сигналов." - Наконец (снова из книги Майкла КЕРРИСКА): «Ядро Linux содержит реализацию
signal
в качестве системного вызова, эта реализация обеспечивает более старую, ненадежную семантику. Однакоglibc
обходит этот системный вызов, предоставляя функцию библиотеки сигналов, которая вызываетsigaction
».
Надеюсь, поможет.
person
sashaVR
schedule
05.06.2015