time() 的结果在 sleep() 之后未更新
Result of time() not updated after sleep()
我正在尝试暂停我的程序 1 秒,然后检查系统时间(我在 Linux)
这是我的测试程序:
#include <stdio.h>
#include <unistd.h>
#include <time.h>
int main() {
time_t now = time(NULL);
struct tm *time_now = localtime(&now);
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
int i = 0;
for (; i < 5; i++) {
sleep(1);
}
// This printf result is not as expected
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
return 0;
}
预期的结果是第二个 printf
将打印 +5 秒。相反,它打印与第一个 printf
.
相同的 time/seconds
我发现(也许)这里发布了同样的问题,但它似乎不起作用:
.
抱歉我的英语不好,谢谢你的时间。
代码正在打印原始 *time_now
值 - 正如预期的那样。
只需再次读取时间即可使用新值。
time_t now = time(NULL);
struct tm *time_now = localtime(&now);
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
int i = 0;
for (; i < 5; i++) {
sleep(1);
}
// Add
time_t now = time(NULL);
struct tm *time_now = localtime(&now);
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
我正在尝试暂停我的程序 1 秒,然后检查系统时间(我在 Linux)
这是我的测试程序:
#include <stdio.h>
#include <unistd.h>
#include <time.h>
int main() {
time_t now = time(NULL);
struct tm *time_now = localtime(&now);
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
int i = 0;
for (; i < 5; i++) {
sleep(1);
}
// This printf result is not as expected
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
return 0;
}
预期的结果是第二个 printf
将打印 +5 秒。相反,它打印与第一个 printf
.
我发现(也许)这里发布了同样的问题,但它似乎不起作用:
抱歉我的英语不好,谢谢你的时间。
代码正在打印原始 *time_now
值 - 正如预期的那样。
只需再次读取时间即可使用新值。
time_t now = time(NULL);
struct tm *time_now = localtime(&now);
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);
int i = 0;
for (; i < 5; i++) {
sleep(1);
}
// Add
time_t now = time(NULL);
struct tm *time_now = localtime(&now);
printf("now: %d-%d\n", time_now->tm_min, time_now->tm_sec);