系统相关信息和文件之时区相关实验(二)

原创 2018年02月02日 13:55:05

1. 题目

Write a program to obtain the current time and print it using strftime, so that it looks like the default output from date(1). Set the TZ environment variable to different values and see what happens.

2. 代码展示

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <err.h>
#include <unistd.h>
int main(int argc,char ** argv)
{
        time_t t;
        int c;
        struct tm * tmp[2];
        char buf2[64];
        char * cp=NULL;
        time(&t);
        while ((c = getopt(argc, argv, "t:")) != EOF)
        {
                switch(c)
                {
                        case 't':
                        cp=optarg;
                        break;
                        case '?':
                        errx(1,"error in getopt\n");

                }


        }
        if(cp != NULL )
                if(putenv(cp) != 0)
                {
                perror("putenv:");
                exit(-1);
                }
        printf("TZ:%s\n",cp);
        tmp[1]= gmtime(&t);
        tmp[0]= localtime(&t);
        if (strftime(buf2, 64, "%a %b %d %X %Z %Y", tmp[0]) == 0)
                printf("buffer length 64 is too small\n");
        else
                printf("%s\n", buf2);
        if (strftime(buf2, 64, "%a %b %d %X %Z %Y", tmp[1]) == 0)
                printf("buffer length 64 is too small\n");
        else
                printf("%s\n", buf2);
        exit(0);
}

  结果如下:

[root@localhost ~]# date
Fri Feb  2 13:48:53 CST 2018
[root@localhost ~]# ./6_1
TZ:(null)
Fri Feb 02 13:48:56 CST 2018
Fri Feb 02 13:48:56 CST 2018
[root@localhost ~]# ./6_1 -t
./6_1: option requires an argument -- 't'
6_1: error in getopt

[root@localhost ~]# ./6_1 -t Asia/Shanghai
TZ:Asia/Shanghai
Fri Feb 02 13:49:19 CST 2018
Fri Feb 02 13:49:19 CST 2018
[root@localhost ~]# 

3. 结论

  已经成功的完成了题目的要求,并且拓展了option功能,可以很清楚的看到以下几点:

  • gmtimelocaltime在本实验中输出结果相同
  • 时区的设置将影响到strftime

NOTE :关于时区这里,网上的讨论还是蛮多的,虽然是一个小知识点,但是却是很多大型程序最基本的元素。

版权声明:本文为博主原创文章,未经博主允许不得转载。

部分响应系统与预编码的分析

通信系统基带发送的码元如果时间间隔太小,容易造成码间串扰,给正确判决带来负面影响。对于时间宽度为Ts的时间域sinc波形而言,要想没有码间串扰,两个sinc函数之间至少间隔Ts,即在当前码元的采样时刻...
  • sinapme
  • sinapme
  • 2013年09月18日 14:49
  • 1103

有关如何获取操作系统已经安装了杀毒软件的研究

      WindowXP SP2开始,提供了安全中心Security Center功能。用于管理系统中的安全设备,像杀毒软件、防火墙等。要想获取操作系统中是不是安装了杀毒软件,以及病毒库是否过期等...
  • FROZEN_PEAK
  • FROZEN_PEAK
  • 2010年03月26日 13:08
  • 290

java 时区问题

一直常用的格式话时间的代码,如今确不符人意了,郁闷至极     SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  ...
  • e3002
  • e3002
  • 2008年04月10日 13:28
  • 2099

自相关与互相关的理解与物理意义

 1) 首先我们仅考虑实信号。 自相关的直观含义就是:把一个信号平移一段距离,跟原来有多相似。 于是就有了自相关的定义: 它代表了“移、乘、积”这三步操作。 如果只谈自相关...
  • caibinbin0925
  • caibinbin0925
  • 2017年08月11日 09:23
  • 401

图论相关算法知识总结

今天是暑假集训的第四场比赛,题目稍微有难度,但是前三道还算比较水,第一道题因为是图论题,当时一看就是裸的tarjan算法的模板题,但是好久没写这算法,临时上网找的模板,可惜忘了重边处理,就没过,在此也...
  • uestct
  • uestct
  • 2015年07月19日 22:43
  • 77

安装emacs全过程

  • hongzhang184
  • hongzhang184
  • 2009年08月16日 13:03
  • 793

目标跟踪之相关滤波:CF及后续改进篇

一. 何为相关滤波?        Correlation Filter 最早应用于信号处理,用来描述两个信号之间的相关性,或者说相似性(有点像早期的概率密度),先来看定义:        对于两个数...
  • linolzhang
  • linolzhang
  • 2017年05月25日 23:40
  • 4244

【目标跟踪: 相关滤波器 二】岭回归(正则化最小二乘分类器)

前言首先说声抱歉,之前的【目标跟踪: 相关滤波器 一】挖坑太深,从五月份发完小论文之后就开始搞DSP了,过完暑假又开始找工作,写毕业论文,在学院里兼职又搞的我很忙,一直没能静下心来写博客。直到现在,毕...
  • Kena_M
  • Kena_M
  • 2017年01月02日 19:48
  • 1604

socket网络编程(2):socket操作相关函数

1、setsockopt()可以用来设置接收、发送超时 int TimeOut=30000;//设置接收超时30秒 if(setsockopt(m_SocketClientCommand,SOL_SO...
  • milanleon
  • milanleon
  • 2014年07月19日 10:48
  • 1032

关于使用WMI获取杀毒软件信息

使用WMI获取杀毒软件信息时需要区分不同的操作系统,不然 会获取不到杀毒软件的信息。以下范例是针对Vista之后版本的: //利用WMI获取杀毒软件信息 #include "stdafx.h" #i...
  • nui111
  • nui111
  • 2015年02月25日 16:48
  • 893
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:系统相关信息和文件之时区相关实验(二)
举报原因:
原因补充:

(最多只允许输入30个字)