收藏官网首页
查看: 2750|回复: 2

[开源项目] linux打印时间

41

主题

55

帖子

766

积分

高级会员

Rank: 4

积分
766
发表于 2017-11-7 11:32:49 | 显示全部楼层 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发

#include <stdio.h>
#include <time.h>
#include <unistd.h>// uni sleep
#include <string.h>

/**
* 取得 linux 时间,然后打印
*/
int main(int argc, char **argv)
{

    time_t lt;
    char *p = NULL;


    while(1)

   {
        lt = time(NULL);// 70 年的相对值
        p =  ctime(&lt);//传替地址时间 处理它,并反回地址
        p[strlen(p)-1]='\0';// 把最后一个回车符 替换成 '\0'
        printf("%s\r",p);
       //回车 不换行// 这个函数 有IO 缓冲区的。。相当于文件 IO 输入输出的方式。。内存,文件,显示器
       // 第一种 放在缓冲区的。。这个缓冲数据什么时候 放到屏幕上来,原来 每次 遇到换行时,就显示到屏幕
       // 第二种 当用usleep 的时候 50毫秒的时候没有回车,它是隔一段时间刷了一段就出来了,也就是等到 缓冲区满了
       // 自动送到屏幕去了。
       // 第三种方案,用户自定义 ,当往缓冲区 写一次数据到缓冲区时,我对流 清仓工作。用fflush(stdout) 来清仓写到屏幕去。
       fflush(stdout);
       sleep(1);
      // usleep(10000);
    }
    return 0;
}


41

主题

55

帖子

766

积分

高级会员

Rank: 4

积分
766
 楼主| 发表于 2017-11-7 11:34:26 | 显示全部楼层
附上一篇关于linux 时间的帖子:http://blog.csdn.net/lupyhlp0925/article/details/37933389

41

主题

55

帖子

766

积分

高级会员

Rank: 4

积分
766
 楼主| 发表于 2017-11-7 11:35:52 | 显示全部楼层
上面那种方式,打印的时间不是常见的年月日时分秒。
另外一种方式:
int main()
{
    char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
    time_t timep;
    struct tm *p;
   
    time(&timep); /*获得time_t结构的时间,UTC时间*/
    p = localtime(&timep); /*转换为struct tm结构的当地时间*/
    printf("%d/%d/%d ", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday);
    printf("%s %d:%d:%d ", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec);
    return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2022 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表