获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x ttmmss”,并每隔1s写入到本地磁盘中一个叫做log

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

/**
  * @function name:	main
  * @brief        : 获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。 
  * @param  	  : argc
  				  : *argv[]
  * @retval       : int
  * @date         : 2024/05/09
  * @version      : 1.0  
  * @note         : None
  */
#include <time.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <strings.h>
#define BUFSIZE 128
int main(int argc, char const *argv[])
{ 
    //待拷贝文件的路径需要通过命令行传递,则需要分析命令行参数数量是否符合需求
    if(2 != argc)
    {
        printf("argument is invalid\n");
        return -1;
    }
    //打开目标文件(wb)
    FILE *file = fopen(argv[1],"wb");
    if(NULL == file)
    {
        perror("open file failed\n");
        return -1;
    }

    time_t temptime; //定义time_t类型变量
    struct tm *temp; //定义结构体指针用于将秒数转换为struct tm结构
    char *way[] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};//定义指针数组存储星期
    char buf[BUFSIZE] = {0}; //定义缓冲区存储数据

   /无限循环
    while(1) 
    {
        time(&temptime);//获取1970至今的秒数,存入到temptime中
        temp = localtime(&temptime); //用localtime将秒数转换成struct tm类型
        sprintf(buf,"%d年%d月%d日%s %d:%d:%d\n",
                temp->tm_year+1900,
                temp->tm_mon+1,
                temp->tm_mday,
                way[temp->tm_wday],
                temp->tm_hour,
                temp->tm_min,
                temp->tm_sec);
        fputs(buf,file); //写入到目标文件中
        printf("file size = %ld\n",ftell(file));//查看目标文件的文本大小
        bzero(buf,BUFSIZE); //清空缓冲区
        //fflush(file);
        fclose(file); //关闭文件
        file = fopen(argv[1],"ab");//再次打开文件(ab)
        sleep(1); //延迟1秒
    }
    
    return 0;
}


posted @   北极甜虾哟  阅读(21)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示