Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08
Данное диагностическое правило основано на руководстве MISRA (Motor Industry Software Reliability Association) по разработке программного обеспечения.
Это правило актуально только для С. Стандарт C не определяет поведение, при котором происходит запись в файл, открытый только для чтения. Поэтому такое поведение некорректно.
Рассмотрим пример:
void foo(void)
{
FILE *file = fopen("file.txt", "r");
if (file != NULL)
{
fputs(file, "I am writing to the read-only file\n");
fclose(file);
}
}
Файл file.txt был открыт в режиме только для чтения, но при этом в него происходит запись. Неизвестно, как поведет себя операционная система в этой ситуации.
Скорее всего, это опечатка, и режим открытия стоит изменить:
void foo(void)
{
FILE *file = fopen("file.txt", "w");
if (file != NULL)
{
fputs(file, "I am writing to the write-only file\n");
fclose(file);
}
}
Диагностическое правило классифицируется как:
|
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: