Итак, я использовал функцию signal() несколько раз до сих пор, хотя я не знал о том, что на самом деле означает объявление этой функции. я узнал, что эта функция возвращает указатель на функцию:Какова цель указателя функции, возвращаемого функцией signal()?
void (*signal(int sig, void (*func)(int)))(int)
И этот указатель указывает на предыдущий обработчик сигнала. ОК, но для чего это? Кто-нибудь использует этот возвращенный указатель? Можете ли вы описать пример, когда это возвращаемое значение полезно?
Возможно, было бы полезно, если вы захотите восстановить предыдущий обработчик позже. Это также возможный способ проверить, что сигнал в настоящее время игнорируется. –
, и вы также можете реализовать * каскадные обработчики сигналов * – tofro