ISO/IEC TS 17961 [filecpy]

Копирование объекта ФАЙЛ

Описание

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

Копирование объекта ФАЙЛ.[1]

Реализация Polyspace

Эта проверка проверяет на наличие указателя ФАЙЛ *.

Примеры

расширить все

Проблема

Проблема возникает, когда указатель на 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 дереференсируется.

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

Решимость: Undecidable
Введенный в R2019a

[1] Выдержки из стандарта «Техническая спецификация ISO/IEC TS 17961 - 2013-11-15» воспроизводятся с согласия АФНОР. Только оригинальный и полный текст стандарта, опубликованный AFNOR Editions - доступный через веб-сайт www.boutique.afnor.org - имеет нормативное значение.