Я написал простой код для проверки функции time()
из time.h
:
// time-test.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
float now = (float)time(NULL);
fprintf(stdout, "time() returns: %f\n", now);
return 0;
}
Но когда я запускаю этот код, я обнаружил, что time()
только «обновляет» его значение каждые 128 секунд. Так что мой вывод похож на
user@ubuntu:~/workspace$ gcc -o time-test time-test.c
user@ubuntu:~/workspace$ ./time-test
time() returns: 1585473408.000000
user@ubuntu:~/workspace$ ./time-test
time() returns: 1585473408.000000
user@ubuntu:~/workspace$ ./time-test
time() returns: 1585473408.000000
А потом немного позже,
user@ubuntu:~/workspace$ ./time-test
time() returns: 1585473408.000000
user@ubuntu:~/workspace$ ./time-test
time() returns: 1585473536.000000
Если вы проверите, вы можете увидеть, что значения, которые time()
Возвращает также кратные 128. Я думаю, что это может быть операционная система, которая делает это нарочно, но я не уверен.
Есть ли способ обновить значения каждую 1 секунду? Любая помощь или pu sh в правильном направлении будет принята с благодарностью!
PS Я использую Ubuntu 18.04 на Windows с VMWare Workstation Pro.