#c #функции
Есть функция, которая завершает программу, выполняя занесение отладочной информации
в файл лога:
void crash(const char *const _fstr, ...)
{
if ( (_fstr != NULL) && (strlen(_fstr) > 0) )
{
FILE *f = fopen(CRASH_LOG_FILE_NAME, "a");
fprintf(f, _fstr, ???);
fclose(f);
}
abort();
}
Я хочу сделать, чтобы в функцию crash() передавалась строка формата и какое-то количество
аргументов. Ситуации бывают разные. При некоторых крашах в файл желательно заносить
не только строку с описанием проблемы, но еще и ряд кодов, например GetLastError()
и WSAGetLastError().
Как это сделать?
Ответы
Ответ 1
Вам нужно использовать функцию vfprintf, а передавать ей аргумент типа va_list, который получаете в своей функции примерно как void crash(const char *const _fstr, ...) { va_list ap; va_start(ap, _fstr); ... vfprintf(f,_fstr,ap); ... va_end(ap);
Комментариев нет:
Отправить комментарий