向文件写入当前系统时间

向文件写入当前系统时间

/********************************************************************
*          
*          file name:       写入系统时间.c
*          author:          c7355608bs@136.com 
*          date:            2024年4月9日
*          function:        每隔一秒向logt.xt文本写入当前系统时间,按CLRT + C 结束程序
*          note:            由于是 CLRT + C 结束程序,所以文件没有正常关闭。
*
*        CopyRight (c)     date(创建时间——修改时间)   c7355608bs@136.com      All Right Reseverd     
*          
********************************************************************/




#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>

/*****************************************************************************
*                 函数名称:     File_Time
*                 函数功能:    打印时间
*                 函数参数:
*                          @file   操作的文件
*                 返回结果:    NONE
*                 注意事项:    NONE
*                 函数作者:    c7355608bs@136.com 
*                 创建日期:    2024年4月9日
*                 修改历史:    2024年4月
*                 函数版本:    1.0
*
*****************************************************************************/

void File_Time(FILE* file)
{
     //获取时间,得到秒时间
    time_t Gtime = time(NULL);

    //将秒时间转换为年月日等
    struct tm * ChangTime = localtime( &Gtime );

    //将时间以 年(tm_year)-月{tm_mon}-日(tm_day) 星期(tm_wday) 时(tm_hour):分(tm_min):秒(tm_sec) 形式写入
   //%02d,可以显示两位,不足两位补0
    fprintf(file,"%d年%d月%d日    星期%d    %02d:%02d:%02d\n",     ChangTime->tm_year + 1900,
                                                            ChangTime->tm_mon,
                                                            ChangTime->tm_mday,
                                                            ChangTime->tm_wday,
                                                            ChangTime->tm_hour,
                                                            ChangTime->tm_min,
                                                            ChangTime->tm_sec);
    
    //写文件采用的是全缓冲,\n属于文件内容,不会刷新缓冲区,所以每一次写入以后需要手动刷新缓冲区
    fflush(file);
   
}


int main(int argc ,const char* arvg[])
{
    int i = 0;
   
    //打开文件并错误判断
    FILE* file = fopen("log.txt","ab+");
    if(NULL == file){
        printf("file open false\n");
        exit(-1);
    }
	//循环写入
    while(1){
            File_Time(file); 
            printf("program has run %d秒\n", i++);
            sleep(1);
    }
    //关闭文件
    fclose(file);

    return 0;
}

注意事项:写文件采用的是全缓冲,\n属于文件内容,不会刷新缓冲区,所以每一次写入以后需要手动刷新缓冲区

posted @   歪币八卜  阅读(29)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示