(转)C语言写文件或日志

来源: http://archive.cnblogs.com/a/2011746/

/*

功能: 获取当前系统时间

返回值: 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,防止误操作而删除了原来文件的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值