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

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

Описание

Управляйте определением

Указатель на объект 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 разыменовывается.

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

Группа: ресурсы
Категория: обязательный
Категория AGC: обязательный
Язык: C90, C99

Введенный в R2015b