Как уже упоминалось в парах других, нет способа стилизовать родительский элемент элемента, используя только CSS, но следующее работает с jQuery :
$("a.active").parents('li').css("property", "value");
В следующей строке:
f1 = signal(SIGINT, signal_handler);
f1
назначен предыдущий обработчик сигнала (который не является signal_handler
в коде), который может не быть указателем на функция, которую вы можете вызвать с аргументом int
.
Для достижения эффекта вам нужно определить второй обработчик сигнала и назначить его на f1
после указанной выше строки.
Примерно так:
#include <signal.h>
#include <stdio.h>
void signal_handler2(int signal)
{
printf("hahahah2222\n");
}
void signal_handler(int signal)
{
printf("hahahah\n");
}
int main(void)
{
void (*f1)(int);
f1 = signal(SIGINT, signal_handler);
f1 = signal(SIGINT, signal_handler2);
f1(3); //Success
signal_handler2(3); //OK
raise(SIGINT);
}
Вывод:
hahahah
hahahah2222
hahahah2222
См. Live Демо
Существует как минимум 3 значения, которые может возвращать signal()
, которые не являются указателями на реальные функции:
SIG_DFL
- обычно ((void (*)(int))0)
SIG_IGN
- обычно ((void (*)(int))1)
SIG_ERR
- обычно ((void (*)(int))-1)
При запуске программы сигналы находятся в режиме SIG_IGN
или SIG_DFL
; впоследствии вы можете установить для них другое значение.
Когда вы вызываете f1 = signal(SIGINT, signal_handler);
, вы получаете один из SIG_DFL
и SIG_IGN
- и ни один из них не является указателем на вызываемую функцию (даже если их тип является указателем на функцию правильного типа).