C语言写文件或日志
/* 功能: 获取当前系统时间 返回值: 0-成功,-1-失败 out: 保存返回的系统时间,格式由fmt决定 fmt: 0-返回:yyyy-mm-dd hh24:mi:ss, 1-返回:yyyy-mm-dd, 2-返回:hh24:mi:ss */ int getTime( char *out, int fmt) // 获取当前系统时间 { if (out == NULL) return -1; time_t t; struct tm *tp; t = time (NULL); tp = localtime (&t); if (fmt == 0) sprintf (out, "%2.2d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d" , tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec); else if (fmt == 1) sprintf (out, "%2.2d-%2.2d-%2.2d" , tp->tm_year+1900, tp->tm_mon+1, tp->tm_mday); else if (fmt == 2) sprintf (out, "%2.2d:%2.2d:%2.2d" , tp->tm_hour, tp->tm_min, tp->tm_sec); return 0; } FILE * openFile( const char *fileName, const char *mode) // 打开文本文件 { FILE *fp = fopen (fileName, mode); return fp; } /* 功能: 将str写入到文件 返回值: 写文件成功返回0,否则返回-1 fp: 文件指针 str: 待写入的字符串 bLog: 1-是日志文件,0-不是日志文件 说明: 如果是日志文件,将会在str前加上当前时间(格式如:2011-04-12 12:10:20) */ int writeFile( FILE *fp, const char *str, int bLog) // 写字符串到文件,bLog表明是否为日志文件 { assert (fp != NULL && str != NULL); char curTime[100] = {0}; int ret = -1; if (bLog) // 获取当前系统时间 { getTime(curTime, 0); ret = fprintf (fp, "[%s] %s\n" , curTime, str); } else ret = fprintf (fp, "%s\n" , str); if (ret >= 0) { fflush (fp); return 0; // 写文件成功 } else return -1; } int closeFile( FILE *fp) { return fclose (fp); } |
需要的头文件有:
time.h, string.h, stdio.h, assert.h
在写文件的时候,一定要控制好打开文件时的mode,防止误操作而删除了原来文件的内容。
分类:
Linux_C/C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)