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

news/2024/10/1 12:16:35

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.ryyt.cn/news/29603.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

iceoryx源码阅读(二)——共享内存管理

目录1 共享内存模型2 获取共享内存2.1 MemoryManager::getChunk2.2 MemPool::getChunk3 释放共享内存3.1 SharedChunk::freeChunk3.2 MemPool::freeChunk4 总结 基于共享内存通信的核心在于共享内存的管理,包括共享内存的分配、释放。 1 共享内存模型 iceoryx先将整块共享内存…

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

本系列文章对iceoryx源码进行解读。 一、什么是iceoryx iceoryx是一种基于共享内存实现的进程间通信组件,实现零拷贝传输。二、源码结构 iceoryx源码包括若干工程,整理如下表所示:下图展示了主要项目之间的依赖(FROM:iceoryx(冰羚)-Architecture):三、iceoryx应用程序结…

PVE安装Windows 95报错 while initializing device IOS

安装Win95重启后报错信息如下图,重启一直报错 while initializing device IOS,查了下报错原因说是 CPU频率太高导致,需要安装AMDK6UPD.EXE补丁包 下载地址 https://zhangka.lanzouw.com/igW0S1y8p5pe 打补丁操作流程: 1)将下载的iso文件加载到新光盘中 2)重启到dos环境…

第147天:免杀对抗-C2远控篇CC++ShellCode定性分析生成提取Loader加载模式编译执行

https://blog.csdn.net/qq_29948489/article/details/136180966 #C2远控-ShellCode-认知&环境 1.创建工程时关闭SDL检查 2.属性->C/C++->代码生成->运行库->多线程 (/MT)如果是debug则设置成MTD 3.属性->C/C++->代码生成->禁用安全检查GS 4.关闭生成清…

再探URLDNS链(手搓exp)

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

长安车机安装三方APP

前言 长安车机目前为基于安卓自研的系统。 目前 默认这个车机系统,不允许安装三方软件,具体表现为:插入u盘识别不出里边的apk文件。 自带的软件版本都特别低,且不支持升级,只能等待整个车机系统连带升级。 重点是,他们通常好几年不推送升级车机系统! 重点来了:没有攻破…

项目冲刺day2

这个作业属于哪个课程 软工4班这个作业要求在哪里 作业要求1.会议1. 照片2. 昨日已完成: 部分完成登录、注册功能。3.今天计划完成的工作 完成登录、注册功能,部分完成用户中心功能4.工作中遇到的困难 对框架不熟悉,出现很多报错。2.燃尽图3.每人的代码签入记录4.适当的项目…

musl-libc 安装与调试

musl-libc 官网:http://musl.libc.org1、下载与安装下载源码并解压编译参数./configure [option]... [VAR=VALUE]... option 说明 --help帮助 --prefix=DIR指定安装目录。默认为/usr/local/musl --host=HOST设置目标程序运行的CPU平台 一般不需要设置,除非你想要交叉编译 默…