获取当前系统时间,把时间转换为特定格式”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;
}
标签:1s,temp,mm,dd,写入,tm,file,include
From: https://www.cnblogs.com/lwj294/p/18182936