exponenta event banner

Правило AUTOSAR C++ 14 M19-3-1

Индикатор ошибки errno не должен использоваться

Описание

Определение правила

Индикатор ошибки errno не должен использоваться.

Объяснение

Соблюдение этого правила поощряет оптимальную практику не полагаться на errno для проверки состояния ошибки.

Проверка errno недостаточно для гарантии отсутствия ошибок. Функции, такие как fopen может не быть установлен errno об ошибках. Часто необходимо проверить возвращаемое значение таких функций на наличие ошибок.

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

Примеры

развернуть все

#include <cstdlib>
#include <cerrno>

void func (const char* str) {
    errno = 0;  // Noncompliant
    int i = atoi(str);
    if(errno != 0) { // Noncompliant
        //Handle Error
    }
}

Использование errno нарушает это правило. Функция atoi не требуется для установки errno если входная строка не может быть преобразована в целое число. Проверка errno более поздняя версия не защищает от возможных сбоев при преобразовании.

Проверить информацию

Группа: Библиотека диагностики
Категория: Обязательно, Автоматизировано
Представлен в R2019a