如何使用 C 在 linux 中指定时区
Posted
技术标签:
【中文标题】如何使用 C 在 linux 中指定时区【英文标题】:How to specify timezone in linux using C 【发布时间】:2011-03-24 21:25:45 【问题描述】:我试图设置我的系统的时区,并尝试使用 settimeofday(),它以时区结构作为参数,但只是读到该结构现在已过时 (http://linux.about.com/library/cmd/blcmdl2_settimeofday.htm) 我怎么能去关于这样做?
提前致谢。
编辑:呃,我觉得自己很愚蠢。
我创建了一个link.c并编译了它:
#include <stdio.h>
void main()
printf("This is the link \n");
创建了一个target.c,并编译它:
#include <stdio.h>
void main()
printf("This is the target \n");
然后在测试程序中尝试了符号链接功能:
#include <unistd.h>
void main()
int garbage = symlink("/home/imandhan/pythonTests/link", "/home/imandhan/pythonTests/target");
printf(garbage);
由于某种原因,这给了我一个分段错误。难道我做错了什么?
【问题讨论】:
你为什么要这样做?系统管理是从命令行和精心设计的脚本完成的,而不是从 C 语言。 哦,对了。返回 -1。我的符号链接语法错了吗? 嗯,这是为了实习,他们希望我为视频会议设备编写这些函数,我根据传递给函数的结构设置时间、时区和内容。我还没有完全了解大局,因为我刚开始.. @iman453 docs.hp.com/en/B9106-90009/symlink.2.html 检查 errno 以了解具体错误。 @Vitor 哦,我不知道 errno 是什么。这个超级好用!谢谢。我做错的事情是我已经创建了一个带有链接名称的文件...... 【参考方案1】:请参阅tzset(3)
了解为应用程序设置时区。
对于整个系统 - 符号链接 /etc/localtime
到 /usr/share/zoneinfo/
下的相应文件。
【讨论】:
...对于单个会话/用户,设置TZ
环境变量。
感谢您的回复。只是为了确保我明白了...我想在 C 中为整个系统设置时区。所以我需要找到某种方法将 /etc/localtime 符号链接到 /usr/share/zoneinfo 下的文件吗?使用 tzset() 是行不通的。抱歉,我真的是 linux 新手,我的工作系统没有管理员权限来尝试弄乱系统。
呃,我觉得自己很愚蠢。我创建了一个link.c 并编译了它:#include 以上是关于如何使用 C 在 linux 中指定时区的主要内容,如果未能解决你的问题,请参考以下文章