linux中time函数
时间戳的三种需求格式: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(×tamp);/*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函数相关推荐
- linux中probe函数传递参数的寻找(下)
点击打开链接 linux中probe函数传递参数的寻找(下) 通过追寻driver的脚步,我们有了努力的方向:只有找到spi_bus_type的填充device即可,下面该从device去打通,当两个 ...
- linux中 probe函数的何时调用的?
点击打开链接 linux中 probe函数何时调用的 所以的驱动教程上都说:只有设备和驱动的名字匹配,BUS就会调用驱动的probe函数,但是有时我们要看看probe函数里面到底做了什么,还有传递给p ...
- 每天学一点儿shell:linux中时间函数的date的用法
文章目录 1.linux中date函数格式 2.date日期函数的具体用法 2.1.获取相应格式的日期 2.2.获取相隔时间段的日期 2.2.1.获取今天的日期 2.2.2.获取昨天的日期 2.2.3 ...
- linux中request_region()函数的分析
linux中request_region()函数的分析 struct resource ioport_resource = { .name = "PCI IO", .start = ...
- linux内核sock_sendmsg,为什么linux中sendto函数中的msg.msg_iovlen=1;
为什么linux中sendto函数中的msg.msg_iovlen=1; | 内核中定义的sys_sendto的源码吗? 这个属于sendmsg中struct msghdr的用法问题, sys_sen ...
- Linux中pthread_create函数的实现
转:http://blog.sina.com.cn/s/blog_6abf2c040101fpca.html 原文地址:[原]Linux中pthread_create函数的实现作者:jiq408694 ...
- Linux中popen函数的作用小结
概述 popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程.这篇文章重点给大家介绍Linux中popen函数的作用,感兴趣的朋友一起看看吧 p ...
- Linux中fork()函数详解
Linux中fork()函数详解 一.fork入门知识 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事, ...
- linux 内核 fget,fgets函数 linux中fgets函数怎么用
一个函数该如何使用?我们最先要了解的就是这个函数的语法以及具体的含义是什么,所以今天我们就来看一看fgets函数在实际的运用过程当中是如何使用的,希望能给大家带来一定的帮助. fgets函数--lin ...
- linux 中 sigaction 函数详解
linux 中 sigaction 函数详解 一.函数原型 sigaction 函数的功能是检查或修改与指定信号相关联的处理动作(可同时两种操作) int sigaction(int signum, ...
最新文章
- AR SDK引擎技术选型和使用实现方案
- springboot 自定义注解
- 大数据学习笔记1000条
- 企业门户项目实施方法论(IPS方法简介),适用于企业门户项目的项目管理方法论(上篇)...
- Java基础---常用类之Arrays工具类+基本类型的包装类
- 不同数据库模式下DATE类型的行为解析
- 关于数据库#1063 - Incorrect column specifier for column 'xxx'异常
- linux vim命令_提升生产力的20大Linux Vim命令
- Java基础篇:类的通用格式
- startlogging中设置setstdout=false来禁用这个功能。_无线路由器的安全功能,你知道多少?...
- C# 添加服务引用。
- java几种远程服务调用协议的比较
- 基于日志处理的ElasticSearch的学(gen)习(feng)
- BZOJ 2594: [Wc2006]水管局长数据加强版( LCT )
- 10.22~10.28一周经典题目整理(meeting,BZOJ4377,POJ3659)
- postgres mysql quora_DesktopReader for Quora
- 【总结】程序员运营公众号一年总结
- opencv(python)使用ann神经网络识别手写数字
- 由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备。 (代码 19)怎么办?
- response概述
热门文章
- 最新大厂Android面试题集——答案+解析
- 歌尔微电子递交上会稿:半年营收14.6亿 拟募资32亿
- NVIDIA Jetson ROSbot等ROS近期事件
- 阿里云centos7下环境部署和项目部署
- 月入40万:「炒鞋」最后的疯狂
- hadoop-3.3.3完全分布式集群搭建
- 关于中国移动M-Market市场定位问题的思考
- 计算机视觉技术在零件识别中的应用,计算机视觉技术在自动化中的应用探析
- Mellanox IB交换机SM HA
- [Simulink] 基于模型的测试与验证学习笔记_Step 3: Detecting Desig Errors