【问题标题】:How to specify timezone in linux using C如何使用 C 在 linux 中指定时区
【发布时间】: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 是什么。这个超级好用!谢谢。我做错的事情是我已经创建了一个带有链接名称的文件......

标签: c linux unix epoch


【解决方案1】:

请参阅tzset(3) 了解为应用程序设置时区。

对于整个系统 - 符号链接 /etc/localtime/usr/share/zoneinfo/ 下的相应文件。

【讨论】:

  • ...对于单个会话/用户,设置TZ 环境变量。
  • 感谢您的回复。只是为了确保我明白了...我想在 C 中为整个系统设置时区。所以我需要找到某种方法将 /etc/localtime 符号链接到 /usr/share/zoneinfo 下的文件吗?使用 tzset() 是行不通的。抱歉,我真的是 linux 新手,我的工作系统没有管理员权限来尝试弄乱系统。
  • 呃,我觉得自己很愚蠢。我创建了一个link.c 并编译了它:#include void main() { printf("This is the link \n"); } 创建了一个 target.c,并编译它: #include void main() { printf("This is the target \n"); } 然后在测试程序中尝试了符号链接功能:#include void main() { int Garbage = symlink("/home/imandhan/pythonTests/link", "/home/imandhan/pythonTests/target" ); printf(垃圾);由于某种原因,这给了我一个分段错误。我做错了吗?
猜你喜欢
  • 2021-11-13
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
  • 2011-01-26
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多