﻿# V2599\. MISRA\. The standard signal handling functions should not be used\.

Диагностическое правило основано на руководстве [MISRA](https://www.misra.org.uk/) \(Motor Industry Software Reliability Association\) по разработке программного обеспечения\.

Функции стандартной библиотеки из заголовочных файлов <signal\.h\> / <csignal\> могут быть опасны\. Их поведение зависит от реализации, а их использование может привести к неопределенному поведению\.

Причиной неопределенного поведения, к примеру, является использование обработчиков сигналов в многопоточной программе\. С другими причинами можно ознакомиться [здесь](https://en.cppreference.com/w/c/program/signal)\.

Анализатор выдаст предупреждение, если обнаружит использование следующих функций:

* signal;
* raise\.

Пример кода, на который анализатор выдаст предупреждение:

```cpp
#include <signal.h>

void handler(int sig) { .... }

void foo()
{
  signal(SIGINT, handler);
}
```