zoukankan      html  css  js  c++  java
  • 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,防止误操作而删除了原来文件的内容。

  • 相关阅读:
    ajax网站
    iTextSharp和jQuery和.Net教程
    搜索引擎学习资料
    tooltip 效果
    ccnet+web deploy远程发布
    创建报表时出现“缺少DataSetName属性的值”
    virtualBox 虚拟机相关设置
    数据库更新数据表时被禁止
    ACL
    windows server 添加IIS
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/2011746.html
Copyright © 2011-2022 走看看