时间戳的三种需求格式:time_t char* struct tm
下图为三种需求格式之间相互转换需要用到的函数。

time(),gmtime(),localtime(),mktime(),strftime()


localtime中返回值struct tm*,指向静态区

time()函数

#include <time.h>time_t time(time_t *t);

此函数会返回从公元 1970 年1 月1 日的UTC 时间从0 时0 分0 秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值存到t 指针所指的内存。
timer=NULL时,得到机器日历时间

返回值:
成功则返回秒数,失败则返回((time_t)-1)值,错误原因存于errno 中。

strftime();


将参数4中的time按照参数3的要求获取,然后写入到参数1中。参数1的大小由参数2限制。

time_t mktime(struct tm *tm)
//将struct tm格式转换为time_t格式,如果中间数据有溢出,则自动调整时间
//FS/100day.c
struct tm *tm;time_t timestamp;char timestr[BUFFSIZE];timestamp = time(NULL);tm = localtime(&timestamp);/*fprintf(stdout, "time: %d-%d-%d %d:%d:%d\n", \tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, \tm->tm_min, tm->tm_sec);     */strftime(timestr, BUFFSIZE,"Now: %Y-%m-%d" ,tm);puts(timestr);  tm->tm_mday += 100;mktime(tm); strftime(timestr, BUFFSIZE,"100 days later: %Y-%m-%d" ,tm);puts(timestr);

//FS/timelog.c
/*
把当前时间按照相应格式每秒钟写入到一个文件中去,用另一个终端
采用“tail -f 文件” 监测写入的中间状态
1.fopen的a+模式;
2.time_t,localtime
3.除了终端设备,其他设备默认是全缓冲形式,需要采用fflush不断刷新,
才能看到中间过程
*/char buf[BUFFSIZE];int count;count = 0;while(fgets(buf, BUFFSIZE, fp) != NULL){count++;}time_t stamp; struct tm* tm; while(1){time(&stamp);       tm = localtime(&stamp);    fprintf(fp, "%-4d%d-%d-%d %d:%d:%d\n", ++count,\tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,\tm->tm_hour, tm->tm_min, tm->tm_sec);fflush(fp);sleep(1);}

linux中time函数相关推荐

  1. linux中probe函数传递参数的寻找(下)

    点击打开链接 linux中probe函数传递参数的寻找(下) 通过追寻driver的脚步,我们有了努力的方向:只有找到spi_bus_type的填充device即可,下面该从device去打通,当两个 ...

  2. linux中 probe函数的何时调用的?

    点击打开链接 linux中 probe函数何时调用的 所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给p ...

  3. 每天学一点儿shell:linux中时间函数的date的用法

    文章目录 1.linux中date函数格式 2.date日期函数的具体用法 2.1.获取相应格式的日期 2.2.获取相隔时间段的日期 2.2.1.获取今天的日期 2.2.2.获取昨天的日期 2.2.3 ...

  4. linux中request_region()函数的分析

    linux中request_region()函数的分析 struct resource ioport_resource = { .name = "PCI IO", .start = ...

  5. linux内核sock_sendmsg,为什么linux中sendto函数中的msg.msg_iovlen=1;

    为什么linux中sendto函数中的msg.msg_iovlen=1; | 内核中定义的sys_sendto的源码吗? 这个属于sendmsg中struct msghdr的用法问题, sys_sen ...

  6. Linux中pthread_create函数的实现

    转:http://blog.sina.com.cn/s/blog_6abf2c040101fpca.html 原文地址:[原]Linux中pthread_create函数的实现作者:jiq408694 ...

  7. Linux中popen函数的作用小结

    概述 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程.这篇文章重点给大家介绍Linux中popen函数的作用,感兴趣的朋友一起看看吧 p ...

  8. Linux中fork()函数详解

    Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...

  9. linux 内核 fget,fgets函数 linux中fgets函数怎么用

    一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...

  10. linux 中 sigaction 函数详解

    linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...

最新文章

  1. AR SDK引擎技术选型和使用实现方案
  2. springboot 自定义注解
  3. 大数据学习笔记1000条
  4. 企业门户项目实施方法论(IPS方法简介),适用于企业门户项目的项目管理方法论(上篇)...
  5. Java基础---常用类之Arrays工具类+基本类型的包装类
  6. 不同数据库模式下DATE类型的行为解析
  7. 关于数据库#1063 - Incorrect column specifier for column 'xxx'异常
  8. linux vim命令_提升生产力的20大Linux Vim命令
  9. Java基础篇:类的通用格式
  10. startlogging中设置setstdout=false来禁用这个功能。_无线路由器的安全功能,你知道多少?...
  11. C# 添加服务引用。
  12. java几种远程服务调用协议的比较
  13. 基于日志处理的ElasticSearch的学(gen)习(feng)
  14. BZOJ 2594: [Wc2006]水管局长数据加强版( LCT )
  15. 10.22~10.28一周经典题目整理(meeting,BZOJ4377,POJ3659)
  16. postgres mysql quora_DesktopReader for Quora
  17. 【总结】程序员运营公众号一年总结
  18. opencv(python)使用ann神经网络识别手写数字
  19. 由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备。 (代码 19)怎么办?
  20. response概述

热门文章

  1. 最新大厂Android面试题集——答案+解析
  2. 歌尔微电子递交上会稿:半年营收14.6亿 拟募资32亿
  3. NVIDIA Jetson ROSbot等ROS近期事件
  4. 阿里云centos7下环境部署和项目部署
  5. 月入40万:「炒鞋」最后的疯狂
  6. hadoop-3.3.3完全分布式集群搭建
  7. 关于中国移动M-Market市场定位问题的思考
  8. 计算机视觉技术在零件识别中的应用,计算机视觉技术在自动化中的应用探析
  9. Mellanox IB交换机SM HA
  10. [Simulink] 基于模型的测试与验证学习笔记_Step 3: Detecting Desig Errors