文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C语言写文件或日志

C语言写文件或日志

时间:2011-04-10  来源:清清飞扬

/*
        功能:             获取当前系统时间
        返回值:    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 void *str, int bLog)                      // 写字符串到文件,bLog表明是否为日志文件
{
        assert(fp != NULL && str != NULL);
        char *p, curTime[100] = {0};
        int len = 0, ret = -1;
        if(bLog)                                                                                                                                // 获取当前系统时间
                getTime(curTime, 0);

        len = strlen(curTime) + strlen(str) + 5;
        p = malloc(len);
        if(p == NULL)
                return -1;

        if(bLog)
                sprintf(p, "[%s] %s\n", curTime, str);
        else
                sprintf(p, "%s\n", str);

        if(fwrite(p, strlen(p), 1, fp) == 1)
                ret = 0;                                        // 写文件成功

        free(p);
        return ret;
}

int closeFile(FILE *fp)
{
        return fclose(fp);
}
需要的头文件有:
time.h, string.h, stdio.h, assert.h.
在写文件的时候,一定要控制好打开文件时的mode,防止误操作而删除了原来文件的内容。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载