/********************************************************************************************************
*
*
* 设计程序,获取当前系统时间,把时间转换为特定格式”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