#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);
Комментариев нет:
Отправить комментарий