Вы не должны никогда не проверять ошибки в операциях, которые не находятся на 100% под вашим контролем. Если вы не знаете, существует ли файл, и операция открытия должна быть успешной (а это то, чего вы действительно не можете знать наверняка), вы должны проверить:
FILE * f = fopen(log_file, "a");
if (!f) { /*error, die? */ }
fprintf(f, buffer);
Также убедитесь, что buffer
является действительным указателем на первый символ массива символов с нулевым символом в конце и что строка не содержит никаких спецификаторов формата.
Для простой печати необработанной строки str
безопаснее использовать fputs(str, f)
или fprintf(f, "%s", str)
, если необходимо.