Я пишу некоторый код, чтобы дать мне историю последних команд, написанных в оболочке, включая время в формате час: минуты.
У меня есть следующий код:
// Modulo by 86400, number of seconds in a day
int totalSeconds = history_time[i] % 86400;
int hours = totalSeconds / 3600;
int minutes = (totalSeconds % 3600) / 60;
printf("%d %d:%d %s\n", count+1, hours, minutes, history[i]);
Я сохраняю время следующим образом:
time_t history_time[MAX_HISTORY_SIZE];
// Store the time
time_t t = time(NULL);
history_time[history_index] = t;
Час, кажется, неправильный, но я не уверен, почему.Я использую Solaris.
Вывод следующий:
1 18:29 ls
2 18:29 cd
3 18:29 ls -al | grep test
Минуты правильные, но не час.При вводе «date» в командной строке я получаю: «Thu Sep 16 14:29:55 EDT 2010», то есть те же минуты, но разные часы.
Я не уверен, имеет ли это отношение к моему кодуили с помощью функции time () в Solaris?Может быть, дата не использует функцию time (), я не уверен.
У кого-нибудь есть решение?
Большое спасибо,
Jary