Варианты работы с сигналом?

Выполняя поиск этого в Google, я (надеюсь) нашел ответ на ваш вопрос на: Форумах Ubuntu . Он показывает точные шаги для загрузки файла E353.tar.gz и показывает инструкции по его установке.

0
31.05.2018, 07:49
1 ответ

Por supuesto, uno puede escribir un controlador de señal que no haga nada y, por lo tanto, ignorar la señal de manera efectiva, pero la primera opción es ignorar específicamente la señal usando el argumento SIG_IGNde la llamada al sistema signal().

Entonces, en términos de código, asumiendo la señal SIGINT, estas son las tres opciones:

  • signal(SIGINT, SIG_IGN);para ignorar
  • Para no llamar a la función signal(), o llamarla con signal(SIGINT, SIG_DFL);y así permitir que ocurra la acción predeterminada, es decir, terminar el proceso
  • signal(SIGINT, termination_handler);, donde termination_handler()es una función que se llama la primera vez que se produce la señal.

Fuente:https://www.gnu.org/software/libc/manual/html_node/Basic-Signal-Handling.html

Para el caso específico de señales donde la acción por defecto es ignorar la señal, las dos primeras opciones(SIG_IGNySIG_DFL)son ​​idénticas. La creación de una función de controlador vacía probablemente no tendrá un efecto visible, aparte de una sobrecarga (pequeña ).

NOTA :El signal()se usa en esta respuesta por simplicidad, pero en el nuevo código sigaction()se recomienda por razones de portabilidad.

3
28.01.2020, 02:23

Теги

Похожие вопросы