定时将系统时间更新在日志文件中

news/发布时间2024/5/20 16:46:46

V1.0 2024年5月9日 发布于博客园

实现:设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。

代码

/*** @file name : writing_date.c* @brief     : 定时更新日志文件, 按ctrl + C结束程序* @author    : RISE_AND_GRIND@163.com* @date      : 2024/05/09* @version   : 1.0* @note      :设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,*             并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。* CopyRight (c)  2023-2024   RISE_AND_GRIND@163.com   All Right Reseverd*/
#include <stdio.h>
#include <time.h>
#include <unistd.h>
#include <stdlib.h>int Print_Time(FILE *pfile);
int main(int argc, char const *argv[])
{// 打开文件FILE *logfile = fopen("log.txt", "a+b");if (NULL == logfile){printf("Failed to open file!\n");exit(-1);}// 写入文件for (int i = 1; 1; ++i){if (Print_Time(logfile) < 0){printf("Failed to write time information to the file!\n");exit(-1);}sleep(1);printf("The log file is updated %d times\n", i);}// 关闭文件fclose(logfile);return 0;
}/*** @name      Print_Time* @brief     将系统时间写入到文件中* @param     pfile 要写入的文件指针* @return*      @retval    负数 写入失败*      @retval    非负数 写入的字符总数* @date      2024/05/09* @version   1.0* @note*/
int Print_Time(FILE *pfile)
{// 存放写入结果int Results = 0;// 存储日历时间, timer=NULL时得到当前日历时间(从1970-01-01 00:00:00到现在的秒数)time_t NowTimeSecs = time(NULL);// NowTimeTransition存放 转换timer的值为tm结构 后的值struct tm *NowTimeTransition = localtime(&NowTimeSecs);char *str = NULL; // 存放星期转换结果// 对转后的星期值进行汉字转换switch (NowTimeTransition->tm_wday){case 1:str = "一";break;case 2:str = "二";break;case 3:str = "三";break;case 4:str = "四";break;case 5:str = "五";break;case 6:str = "六";break;case 0:str = "天";break;}// 发送格式化输出流到文件  格式为“yy年mm月dd日 星期x tt:mm:ss”Results = fprintf(pfile, "%d年%02d月%02d日 星期%s %02d:%02d:%02d \n",NowTimeTransition->tm_year + 1900,NowTimeTransition->tm_mon + 1,NowTimeTransition->tm_mday,str,NowTimeTransition->tm_hour,NowTimeTransition->tm_min,NowTimeTransition->tm_sec);// 刷新全缓冲fflush(pfile);return Results;
}

测试

没有log.txt文件时会创建该文件,写入结果如下:

2024年05月10日 星期五 01:54:35 
2024年05月10日 星期五 01:54:36 
2024年05月10日 星期五 01:54:37 
2024年05月10日 星期五 01:54:38 
2024年05月10日 星期五 01:54:39 
2024年05月10日 星期五 01:54:40 
2024年05月10日 星期五 01:54:41 
2024年05月10日 星期五 01:54:42 
2024年05月10日 星期五 01:54:43 

控制台终端结果:

yuyi@IoTDevelopment:~/MyDevelopmentFile/homework/fileIO/20240509$ ./a.out 
The log file is updated 1 times
The log file is updated 2 times
The log file is updated 3 times
The log file is updated 4 times
^C

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/62201644.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

iceoryx源码阅读(一)——全局概览

一、什么是iceoryx iceoryx是一套基于共享内存实现的进程间通信组件。 二、源码结构 iceoryx源码包括若干工程,整理如下表所示:下图展示了主要项目之间的依赖(FROM:iceoryx(冰羚)-Architecture):三、iceoryx应用程序结构 iceoryx应用程序有三类进程,分别为Publisher、Su…

再探URLDNS链(手搓exp)

夜深了,想着还需要沉淀自己的基础能力,于是乎没有继续往CC链里爬,通过研究了一下ysoserial里的URLDNS链,决定自己尝试写一个类似却有些不同的exp,使自己的基础更加牢固一些,故有了今天这篇文章。 ysoserial里的URLDNS链我就不再多说,有兴趣的话自己可以去看下面这篇文章…

《编译原理》阅读笔记:p4-p17

《编译原理》学习第 2 天,p4-p17总结,总计 14 页。 一、技术总结 1.structure of compiler 编译器组成包括:Lexical Analyzer -> Syntax Analazer -> Semantic tree -> Intermediate Code Generator -> Machine-Independent Code Optimizer -> Code Genera…

Homework 7

1.尝试建模电梯的状态图2.学校规定:一个学生可选修多门课,一门课有若干学生选修; 一个教师可讲授多门课,一门课只有一个教师讲授; 一个学生选修一门课,仅有一个成绩。 学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。 要求:根据…

团队作业4——项目冲刺 第3篇 Scrum 冲刺博客

这个作业属于哪个课程 软件工程这个作业要求在哪里 团队作业4——项目冲刺这个作业的目标 团队完成任务的分配,明确团队每个人在接下来七天敏捷冲刺的目标其他参考文献这个作业所属团队 SuperNewCode团队成员 张楠 曾琳备 黄铭涛 张小宇 周广1.每日举行站立时会议2.燃尽图3.每…