MISRA C:2012 Rule 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 разыменовывается.

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

Группа: ресурсы
Категория: обязательный
Категория AGC: обязательный
Введенный в R2015b