Данное диагностическое правило основано на руководстве AUTOSAR (AUTomotive Open System ARchitecture) по разработке программного обеспечения.
Функции стандартной библиотеки из заголовочных файлов <signal.h> / <csignal> могут быть опасны. Их поведение зависит от реализации, а их использование может привести к неопределенному поведению.
Причиной неопределенного поведения, к примеру, является использование обработчиков сигналов в многопоточной программе. С другими причинами можно ознакомиться здесь.
Анализатор выдаст предупреждение, если обнаружит использование следующих функций:
Пример кода, на который анализатор выдает предупреждение:
#include <csignal>
void handler(int sig) { .... }
void foo()
{
signal(SIGINT, handler);
}
Данная диагностика классифицируется как:
|