main

snprintf и слишком умный компилятор

Наткнулся на забавное. При попытке скомпилировать достаточно тривиальный код:

gcc -Wall -Wextra -pedantic -D_FORTIFY_SOURCE=2 -O2 -o test test.c

...получаем две предупреждения от компилятора:

→ Читать дальше...

2021-03-30

Обработка ошибок в си

Навеяно вознёй со своим проектом, и вот этим срачем "как правильно закрывать файл" на 18 страниц. На полноту охвата вопроса не претендую, только то что видел и использовал сам.

Будем рассматривать на примере выделения памяти для сложного ресурса, сферичной структуры в вакууме с несколькими членами, также выделяемыми через *alloc(). Вот такой:

struct foo {
  int id;
  char *data1;
  char *data2;
};

Сразу оговорюсь, что я считаю использование функций-аллокаторов "всего и сразу" - плохой практикой.

→ Читать дальше...

2016-09-09