У меня проблемы с преобразованием времени эпохи Unix в массив символов.Я знаю, как это сделать, и преобразование происходит правильно, но после того, как я вызову gmtime () или localtime (), ко всем входным данным добавляются случайные символы.Я зафиксировал проблему, и ТОЛЬКО строки, вызывающие localtime () или gmtime (), вызывают эту проблему (серьезно ... У меня они есть, и проблема возникает, я закомментирую их, переделываю, и проблема больше не возникает).Вот функция, где эта функция вызывается:
void ls(){
int clusterSize = bootRecord[0];
int root = bootRecord[2];
for (int i = 0; i < bootRecord[0] / 128 ; ++i){
fseek(fp, clusterSize * root + 128 * i, SEEK_SET);
if(directoryTable[i].name[0] != 0x00){
time_t rawtime = (time_t)directoryTable[i].creation;
struct tm * curDate;
curDate = localtime(&rawtime);
printf("%s %d %s", directoryTable[i].name, directoryTable[i].size,
asctime(gmtime(&rawtime)));
}
}
}
Сейчас у меня есть asctime (gmtime (& rawtime)), но я попытался разделить их на несколько разных операторов, но безрезультатно.Кто-нибудь знает полезную альтернативу localtime () или gmtime ()?Или случайно знаете решение этой конкретной проблемы?Спасибо.