У меня есть простая функция журнала, которая должна напечатать текущую дату и время.Я делаю это внутри функции, которая возвращает char *
.Когда я пытаюсь установить char *
в fprintf()
, он не выводит мне строку в файл: почему?
Вот функция, которая создает дату и время:
char * UT::CurrentDateTime()
{
char buffer [50];
time_t t = time(0); // get time now
struct tm * now = localtime( & t );
int n=sprintf(buffer, "%d:%d:%d %d:%d:%d:", (now->tm_year + 1900),
(now->tm_mon + 1), now->tm_mday, now->tm_hour, now->tm_min,
now->tm_sec);
return buffer;
}
Вот журнал:
const char *time =__TIME__; // compilation time
char *currentTime = UT::CurrentDateTime(); // it's a static method; also tried to set it to const
fprintf(fp, "%s %s %s %s %s %d %s\n", __TIME__, pType, __DATE__,
currentTime, pFileName, lineNo, pMsg.c_str());
fflush(fp);
Печатается каждая вещь, кроме даты / времени char *
.Почему?