8.248 SIGNAL — Обработка сигналов подпрограмма (или функция)
- Описание:
-
SIGNAL(NUMBER, HANDLER [, STATUS])вызывает внешнюю подпрограмму HANDLER с одним целочисленным аргументом, переданным по значению, когда возникает сигнал NUMBER. Если HANDLER является целым числом, он может быть использован для отключения обработки сигнала NUMBER или возврата к его стандартному действию. См.signal(2).Если
SIGNALвызывается как подпрограмма и аргумент STATUS указан, он устанавливается в значение, возвращённоеsignal(2). - Стандарт:
-
Расширение GNU
- Класс:
-
Подпрограмма, функция
- Синтаксис:
-
CALL SIGNAL(NUMBER, HANDLER [, STATUS])STATUS = SIGNAL(NUMBER, HANDLER) - Аргументы:
-
NUMBER Должен быть скалярным целым числом, с INTENT(IN)HANDLER Обработчик сигнала ( INTEGER FUNCTIONилиSUBROUTINE) или псевдо-глобальный скалярINTEGER.INTEGER. ОнINTENT(IN).STATUS (Необязательно) STATUS должен быть скалярным целым числом. Он имеет INTENT(OUT). - Возвращаемое значение:
-
Функция
SIGNALвозвращает значение, возвращённоеsignal(2). - Пример:
-
module m_handler contains ! POSIX.1-2017: void (*func)(int) subroutine handler_print(signum) bind(C) use iso_c_binding, only: c_int integer(c_int), value :: signum print *, 'handler_print invoked with signum =', signum end subroutine end module program test_signal use m_handler intrinsic :: signal, sleep call signal (12, handler_print) ! 12 = SIGUSR2 (on some systems) call signal (10, 1) ! 10 = SIGUSR1 and 1 = SIG_IGN (on some systems) call sleep (30) end program test_signal
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/SIGNAL.html