首页 > 其他分享 >获取系统时间

获取系统时间

时间:2024-05-08 21:22:27浏览次数:18  
标签:02d log mm 系统 获取 tm 时间 time include

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

/*************************************************
 *
 *   file name:GetCurTime.c
 *   author   :[email protected]
 *   date     :2024/05/08
 *   brief    :获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,
 *             并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。
 *   note     :None
 *
 *   CopyRight (c) 2024    [email protected]    All Right Reseverd
 *
 **************************************************/
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <strings.h>
#include <unistd.h>
/*************************************************
 *
 *   func name     :main
 *   brief         :获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,
 *                  并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。
 *   func parameter:
 *                  @argc:由终端传入的参数的个数
 *                  @argv[0]:可执行文件
 *                  @argv[1]:要写入的文件指针
 *   return        :None
 *   note          :None
 *   func author   :[email protected]
 *   date          :2024/05/08
 *   version       :V1.0
 **************************************************/
int main(int argc, const char *argv[])
{
    if (2 != argc) // 判断终端是否传入两个参数(可执行文件、log.txt的文件指针)
    {
        perror("argment is invaild!\n");
        exit(-1);
    }

    // 1.打开log.txt文件,如果没有则创建,并做错误处理
    FILE *log = fopen(argv[1], "ab");
    if (log == NULL)
    {
        printf("open %s is failed!\n", argv[1]);
    }

    // 2.获取当前系统时间
    const char *weekday[] = {"日", " 一", " 二", "三", "四", "五", "六"};
    while (1)
    {
        time_t CurrentTime;
        time(&CurrentTime);
        struct tm *time = localtime(&CurrentTime);
        fprintf(log, "%d年 %02d月 %02d日 星期%s %02d:%02d:%02d\n", time->tm_year + 1900, time->tm_mon + 1, time->tm_mday,
                weekday[time->tm_wday], time->tm_hour, time->tm_min, time->tm_sec);
        fflush(log);
        sleep(1);
    }

    return 0;
}

执行结果
image

标签:02d,log,mm,系统,获取,tm,时间,time,include
From: https://www.cnblogs.com/bell-c/p/18180907

相关文章

  • 一个开源的基于Asp.Net Mvc开发的个人博客系统项目
    项目简介这是一个基于Mvc5构建的简单、代码层级分明的开源个人博客系统。前端美观大气、后台采用RightControl.NET通用角色权限系统,开发简单、效率高。网站配置采用XML配置,灵活可以根据自己是需求进行个性化配置。系统功能完备,完全可以满足需求,基本不用二次开发,非常使用程序......
  • 面向对象的三大特性、封装的介绍及属性、装饰器property、员工管理系统
    【一】面向对象的三大特性封装:封装指的就是把数据与功能都整合到一起继承多态【二】什么是封装封装是对具体对象的一种抽象意思就是将某部分功能和代码隐藏起来,在程序外边看不到,只能在程序内部使用【三】为什么要封装?封装数据的主要原因是:保护隐私(把不想别人......
  • 基于深度卷积神经网络的时间序列图像分类,开源、低功耗、低成本的人工智能硬件提供者
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI人工智能卷积神经网络(CNN)通过从原始数据中自动学习层次特征表示,在图像识别任务中取得了巨大成功。虽然大多数时间序列分类(TSC)文献都集中在1D信号上,但本文使用递归图(RP)将时间序列转换为2D纹理图像,然后利用深度CNN分......
  • 如何降低系统运维成本
    自动化:运维成本控制的基石自动化是降低运维成本的第一步。通过将重复性高、标准化的任务自动化,企业能够显著减少人力投入,降低错误率,同时提升运维效率。1.自动化部署与配置管理: 使用诸如Ansible、Terraform等自动化配置管理工具,企业可以实现基础设施即代码(IaC),自动化完成服务器......
  • Debian 系统 IP 和 DNS 配置, 解决 resolv.conf 文件导致的问题
    IP配置/etc/network/interfacesautoeth0ifaceeth0inetstaticaddressx.x.x.xnetmask255.255.255.0gatewayx.x.x.x#dns-nameservers没有用DNS配置修改文件/etc/systemd/resolved.confDNS=8.8.8.88.8.4.4重启systemd-resolvedsystemctlrestartsystemd-res......
  • 细说夜莺监控系统告警自愈机制
    虽说监控系统最侧重的功能是指标采集、存储、分析、告警,为了能够快速恢复故障,告警自愈机制也是需要重点投入建设的,所有可以固化为脚本的应急预案都可以使用告警自愈机制来快速驱动。夜莺开源项目从v7版本开始内置了告警自愈模块,本文将详细介绍告警自愈的原理和实现。夜莺项目......
  • 程序员副业创富:业余时间解锁首笔财富里程碑
    在这个充满机遇的数字时代,我,一个普通的程序猿,编程爱好者,终于在云端源想这个平台上收获了属于我的第一桶金。这是一个关于兼职、学习与成长的故事,希望能激发同在编程路上的你,勇敢迈出那一步。先晒晒我的首笔收入:一个普通的周末,我像往常一样,泡上一杯咖啡,坐在电脑前,漫无目的地浏览......
  • 解决国产系统 Docker 拉取大镜像卡顿之谜
    今天解决了客户arm64机器上dockerpull大镜像卡住的问题。由来同事让我帮忙解决客户现场Docker镜像无法拉取的问题,故障如下会一直卡住: $ docker pull xxx:5000/xxxx xxx: Pulling from xxx/xxxxxx 7c0b344a74c2: Extracting [>     ......
  • sql server时间戳timestamp
    原文链接:https://www.cnblogs.com/hanke123/p/4741561.html在SQLServer中联机丛书是这样说的:SQLServertimestamp数据类型与时间和日期无关。SQLServertimestamp是二进制数字,它表明数据库中数据修改发生的相对顺序。实现timestamp数据类型最初是为了支持SQLServer恢......
  • jQuery获取当前元素是该父元素的第几个元素&获取父元素的第n个子元素
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Document</title></head><body><ul><li>第一个元素</li><li>第二个元素<......