exponenta event banner

MISRA C:2012 Правило 22.5

Указатель на FILE объект не должен быть обособлен

Описание

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

Указатель на FILE обособление объекта не допускается.

Объяснение

Стандарт гласит, что адрес FILE объект, используемый для управления потоком, может быть значимым. Копирование этого объекта может не привести к такому же поведению. Это правило обеспечивает невозможность выполнения такой копии.

Непосредственное управление FILE возможно, объект несовместим с его использованием в качестве обозначения потока.

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

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

Примеры

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

#include <stdio.h>

void func(void) {
    FILE *pf1;
    FILE *pf2;
    FILE f3;

    pf2 = pf1;        /* Compliant */
    f3 = *pf2;        /* Non-compliant */
    pf2->_flags=0;    /* Non-compliant */
 }

В этом примере правило нарушается, когда FILE* указатель pf2 обнуляется.

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

Группа: Ресурсы
Категория: Обязательно
Категория СМЖЛ: обязательная
Представлен в R2015b