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

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

时间:2024-05-11 18:52:22浏览次数:27  
标签:fp 文本 stdTime mm NULL tm txt

/********************************************************************************************************
*
*
* 设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个
* 叫做log.txt的文本中,如果文本不存在则创建。
*
* 
*
* Copyright (c)  2023-2024   [email protected]   All right Reserved
* ******************************************************************************************************/

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


int main(int argc, char *argv[])
{
    if (2 != argc) // 判断函数调用时的参数是否输入正确
    {
        printf("Usage:%s<dst>\n", argv[0]);
        exit(1);
    }
    FILE *fp = NULL;           // 申请结构体指针变量
    struct tm *stdTime = NULL; // 申请tm结构体变量
    time_t curTime = 0;        // 申请时间戳变量
    while (1)
    {
        
        //此处在循环体内进行打开/关闭文件并错误判断,因为如果不进行这一步,则会无法打开文件看到时间覆盖的动作。因此这一步需要根据具体设备来调整。

        if (NULL == (fp = fopen(argv[1], "a")))//用a进行追加写入,效果更明显;不然可以直接用w进行覆盖操作
        {
            perror("Open failed.\n");
            exit(1);
        }
        curTime = time(NULL);          // 获取当前时间戳
        // 使用localtime 函数,并获取时间,传入tm结构体
        stdTime = localtime(&curTime); 
        if ((fprintf(fp, "%d 年 %d 月 %d 日  星期%d  %d时%d分%d秒\n", stdTime->tm_year + 1900, stdTime->tm_mon + 1, stdTime->tm_mday, stdTime->tm_wday, stdTime->tm_hour, stdTime->tm_min, stdTime->tm_sec) == EOF))
            printf("Input time failed.\n"); // 对文件进行输入时间,并同时进行错误判断

        // 循环体内进行关闭文件操作    
        fclose(fp);                         
        sleep(1);
    }
    return 0;
}

标签:fp,文本,stdTime,mm,NULL,tm,txt
From: https://www.cnblogs.com/CamelliaWY/p/18187030

相关文章

  • django 点击按钮,显示文本,js实现
    方法一:点击显示弹出框<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>数据弹窗</title><scripttype="text/javascript">functionshowAlert(data){......
  • 西门子通讯协议-S7COMM报文
       -(1)建立TCP连接   Socket.Connect   -(2)发送访问请求  COTP   -(3)交换通信信息  SetupCommunication   -(4)执行相关操作  读、写、PLC启停、时间、上传下载一、CTOP请求连接staticvoidMain(string[]args){Socketsoc......
  • Kubernetes Dashboard部署安装recommended.yaml
    ```yml#Copyright2017TheKubernetesAuthors.##LicensedundertheApacheLicense,Version2.0(the"License");#youmaynotusethisfileexceptincompliancewiththeLicense.#YoumayobtainacopyoftheLicenseat##http://www.apache.......
  • How to Learn Item Representation for Cold-Start Multimedia Recommendation
    目录概符号说明MotivationMulti-TaskPairwiseRanking(MTPR)代码DuX.,WangX.,HeX.,LiZ.,TangJ.andChuaT.Howtolearnitemrepresentationforcold-startmultimediarecommendation?MM,2020.概作者以往的多媒体推荐对于colditems在训练阶段没有足够的......
  • Java开发利器Commons Lang之元组Tuple
    标准Java库没有提供足够的方法来操作其核心类,ApacheCommonsLang提供了这些额外的方法。ApacheCommonsLang为java提供了大量的帮助工具。langAPI,特别是String操作方法、基本数值方法、对象反射、并发、创建和序列化以及System属性。此外,它还包含对java.util.Date的基本增......
  • Windows 平台上有许多第三方文本编辑器,代码编辑器,它们提供了比系统自带记事本更丰富的
    Windows平台上有许多第三方文本编辑器,代码编辑器,它们提供了比系统自带记事本更丰富的功能和更友好的用户界面。以下是一些常见的第三方记事本软件文本编辑器,代码编辑器:Notepad++:Notepad++是一款免费开源的文本编辑器,支持多种编程语言的语法高亮显示和语法折叠,还具有查找......
  • 探究:响应式编程(Reactive Programming)
    在当今软件开发领域,响应式编程(ReactiveProgramming)成为了一个备受关注的话题。它提供了一种新的编程范式,与传统的命令式编程有着显著的不同。本文将详细讲解什么是响应式编程,以及它与传统的命令式编程的不同之处。1.什么是响应式编程?响应式编程是一种编程范式,它基于数据流和变......
  • Selenium4自动化测试3--元素定位By.NAME,By.LINK_TEXT 和通过链接部分文本定位,By.PARTI
    4-通过名称定位,By.NAMEname属性为表单中客户端提交数据的标识,一个网页中name值可能不是唯一的。所以要根据实际情况进行判断 importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy#指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配......
  • 2022 Benelux Algorithm Programming Contest (BAPC 22) A 、I、J、L
    A.AdjustedAverage(暴力枚举+二分查找)分析读完题目可以发现k很小,那么考虑暴力做法的时间复杂度为\(O(C_n^k)\),对于\(k\leq3\)的其实可以直接暴力创过去,但对于\(k=4\)的情况显然不适用。那么对应\(k=4\)的情况考虑优化,可以选择将数分为两个集合,先用一个set存下其中一个集合的所......
  • Linux 打印文本部分行内容(前几行,指定行,中间几行,跨行,奇偶行,后几行,最后一行,匹配行)
    背景打印对账文件最后一行汇总信息,顺便总结下Linux打印文本部分行内容的各种方法。测试文本#生成测试文本内容$seq-f"%02gdaodaotest"110>test.txt#查看测试文本内容,并显示行号$cat-ntest.txt101daodaotest202daodaotest3......