打开或新建文件循环记录系统时间
/*******************************************************************
*
* 文件名称 : 文件I/O中记录系统时间
* 文件作者 : [email protected]
* 创建日期 : 2024/05/09
* 文件功能 : 打开或创建文件,并向文件中写入系统时间
* 注意事项 : None
*
* CopyRight (c) 2024 [email protected] All Right Reseverd
*
* *****************************************************************/
头文件包含
#include <stdio.h>
#include "time.h"
#include <stdlib.h>
#include <unistd.h>
自定义函数接口
获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。
/*******************************************************************
*
* 函数名称: TimeWriter
* 函数功能: 向文件中写入系统时间,文件不存在时自动创建
* 函数参数: none
* 返回结果:
* @dest 文件流地址指针
* 注意事项: None
* 函数作者: [email protected]
* 创建日期: 2024/05/09
* 修改历史:
* 函数版本: V1.0
* *****************************************************************/
void TimeWriter(FILE *dest)
{
//定义变量储存time函数返回的秒数,并使用localtime函数转换成当前的系统时间
long int data = 0;
struct tm *now = (struct tm *)calloc(1, sizeof(struct tm *));
if (NULL == dest)
{
printf("file open error\n");
exit(1);
}
while (1)
{
data = time(NULL);
now = localtime(&data);
fprintf(dest, "%d年%02d月%02d日-%d-%02d-%02d-%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, now->tm_wday, now->tm_hour, now->tm_min, now->tm_sec);
usleep(500000);
}
}
主函数中调用测试
int main(int argc, char const *argv[])
{
// 判断命令行输入的参数是否有效
if (2 != argc)
{
printf("argument is error!\n");
exit(1);
}
// 判断文件地址是否有效
if (NULL == argv[1])
{
perror("File open if error!");
exit(1);
}
// 以追加方式打开一个log.txt文件,间隔1s将系统时间写入文件中
FILE *dest = fopen("log.txt", "ab");
TimeWriter(dest);
return 0;
}
标签:文件,函数,02d,dest,tm,IO,操作,now
From: https://www.cnblogs.com/lzlwyh/p/18183220