moooooong Ответов: 2

Как получить абсолютно увеличивающееся количество в AIX


Привет~
я нахожу, как получить абсолютно растущий счет в Эксе.

кто-нибудь, помогите мне. T_T

Что я уже пробовал:

Мне не нужны следующие случаи.

...
FILE *utmp = fopen(UTMP_FILE, "r");

   if (utmp == NULL) {
     /* Can't open utmp, use current time as boottime */
     boottime = time(NULL);
   } else {
     while (fread((char *) &buf, sizeof(buf), 1, utmp) == 1) {
        if (buf.ut_type == BOOT_TIME) {
            boottime = buf.ut_time;
            break;
        }
     }
   }
...


потому что если системное время изменить с помощью такой команды, как "дата"
получается неверное значение.

2 Ответов

Рейтинг:
2

OriginalGriff

В значительной степени, вы не можете. Подумайте об этом: игнорируйте компьютеры на мгновение.
Вы сидите в своей машине, ваш мобильный телефон дома, вы не носите часы.
Сколько сейчас времени?
У вас в машине есть часы - но так ли это? вы настроили его на летнее время? Правильно ли вы его настроили?
Вы не можете сказать, если вы не используете какой - то надежный внешний источник времени-в этом случае вы можете включить радио и найти станцию, которая скажет вам. Затем вы можете сверить это с вашими автомобильными часами и решить, правильно это или нет. Но если Радио сломано? У вас есть только часы, чтобы идти, и вы не можете сказать, правильно ли это.

Вернемся к вашей проблеме, и у вас есть то же самое: если у вас нет доступа к интернету и внешнему источнику времени, у вас есть только системные часы для работы, и они могут быть изменены по желанию (потому что Windows не может получить доступ к внешним часам, если они не подключены к интернету!)

На первый взгляд, вы пытаетесь помешать пользователям "перематывать время" и оставаться внутри "пробного периода" - но единственное, что вы можете сделать, это записать последнюю дату и время, когда ваше приложение было запущено, и сравнить системное время с этим, чтобы попытаться обнаружить Читы. Если у вас нет доступа к внешним источникам времени, вы больше ничего не можете сделать...


moooooong

Спасибо за ответ.
однако в Linux я подтвердил, что количество времени загрузки записывается в результате файла "/proc/uptime".
Это имеет значение независимо от того, было ли изменено системное время.
Поэтому я хочу знать, есть ли какое-то значение, которое абсолютно рассчитано на AIX.

Рейтинг:
18

CPallini

Если вы ищете монотонный часы не использовать монотонные часы: Центре знаний IBM - clock_getres, при успешном выполнении функции clock_gettime, и clock_settime подпрограммы[^].


moooooong

Благодаря этому я смог хорошо ее решить. :)

CPallini

Добро пожаловать.