首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正在运行的进程不遵循系统时间

正在运行的进程不遵循系统时间
EN

Stack Overflow用户
提问于 2014-02-09 23:41:28
回答 1查看 62关注 0票数 0

考虑一下下面的程序,它除了每分钟打印一次时间之外,什么也不做。当我将/etc/localtime链接更改为不同的时区时,我希望它根据新的时区打印时间,但它仍然使用启动时生效的时区。

如何让程序使用正确的时间,即使在它运行时更改了时区?

顺便说一句,系统是CentOS 5.8

代码语言:javascript
复制
#include <sys/time.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#define MAX_STIME_LEN 32
int
main()
{
    while(1){
        struct timeval timev;
        gettimeofday(&timev,0);
        struct tm now_tm;
        time_t now = timev.tv_sec;
        char saved_time[MAX_STIME_LEN];
        strftime(saved_time, sizeof(saved_time), "%b %e %T", localtime_r (&now, &now_tm));
        printf("%s\n",saved_time);
        sleep(15);
    }
}

请注意,使用localtime_r和strftime而不是使用ons stop调用是必要的。这只是一个例子。

EN

回答 1

Stack Overflow用户

发布于 2014-02-10 00:02:21

嗯,我在这里找到了答案: stackoverflow.com/questions/19170721/…,它所缺少的是我必须取消设置环境变量TZ (即使它只是指向/etc/localtime)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21661118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档