向文件写入当前系统时间
/********************************************************************
*
* file name: 写入系统时间.c
* author: [email protected]
* date: 2024年4月9日
* function: 每隔一秒向logt.xt文本写入当前系统时间,按CLRT + C 结束程序
* note: 由于是 CLRT + C 结束程序,所以文件没有正常关闭。
*
* CopyRight (c) date(创建时间——修改时间) [email protected] All Right Reseverd
*
********************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
/*****************************************************************************
* 函数名称: File_Time
* 函数功能: 打印时间
* 函数参数:
* @file 操作的文件
* 返回结果: NONE
* 注意事项: NONE
* 函数作者: [email protected]
* 创建日期: 2024年4月9日
* 修改历史: 2024年4月
* 函数版本: 1.0
*
*****************************************************************************/
void File_Time(FILE* file)
{
//获取时间,得到秒时间
time_t Gtime = time(NULL);
//将秒时间转换为年月日等
struct tm * ChangTime = localtime( &Gtime );
//将时间以 年(tm_year)-月{tm_mon}-日(tm_day) 星期(tm_wday) 时(tm_hour):分(tm_min):秒(tm_sec) 形式写入
fprintf(file,"%d年%d月%d日 星期%d %d:%d:%d\n", ChangTime->tm_year + 1900,
ChangTime->tm_mon,
ChangTime->tm_mday,
ChangTime->tm_wday,
ChangTime->tm_hour,
ChangTime->tm_min,
ChangTime->tm_sec);
//写文件采用的是全缓冲,\n属于文件内容,不会刷新缓冲区,所以每一次写入以后需要手动刷新缓冲区
fflush(file);
}
int main(int argc ,const char* arvg[])
{
int i = 0;
//打开文件并错误判断
FILE* file = fopen("log.txt","ab+");
if(NULL == file){
printf("file open false\n");
exit(-1);
}
//循环写入
while(1){
File_Time(file);
printf("program has run %d秒\n", i++);
sleep(1);
}
//关闭文件
fclose(file);
return 0;
}
注意事项:写文件采用的是全缓冲,\n属于文件内容,不会刷新缓冲区,所以每一次写入以后需要手动刷新缓冲区
标签:文件,当前,写入,tm,时间,file,ChangTime From: https://www.cnblogs.com/waibibabu-/p/18182573