c语言之LogToFile

161 篇文章 10 订阅
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <assert.h>
#include <malloc.h>
#include <stdarg.h>

void LogToFile(const char *Format, ...)
{

    #define savepath "/mnt/sdcard/file1.txt"

    va_list va;
    char szOutputString[1024];
    char time[256];
    va_start(va, Format);
    memset(szOutputString, 0, 1024);
    vsprintf(szOutputString, Format, va);
    sprintf(szOutputString,"%s\n",szOutputString);

    FILE *fp=fopen(savepath, "a+");
    fprintf(fp,"%s",szOutputString);
    fflush(fp);
    fclose(fp);
    va_end(va);

}
void logToFile2(char* fmt, ...)
{
    char* log = "/mnt/sdcard/file2.txt";
    FILE * logFile;
    logFile = fopen(log, "a");
    va_list args;
    va_start(args, fmt);
    vfprintf(logFile, fmt, args);
    va_end(args);
    fflush(logFile);
    fclose(logFile);
}

static FILE *logfile = NULL;

void logToFile3(const char *fmt, ...) {
    va_list ap;
    if (logfile == NULL) {
        logfile = fopen("/mnt/sdcard/file3.txt", "w+");
    }
    if (logfile) {
        va_start(ap, fmt);
        vfprintf(logfile, fmt, ap);
        va_end(ap);
        fflush(logfile);
    }
    else {
        printf("LOG ERROR!\n");
    }
}


int LogToFile4(char *szLogText, ...)
{
    FILE *fp;
    if (!(fp = fopen("/mnt/sdcard/file4.txt", "a")))
        return 0;
    va_list vArgptr;
    char szText[1024];
    va_start(vArgptr, szLogText);
    vsprintf(szText, szLogText, vArgptr);
    va_end(vArgptr);
    fprintf(fp, "%s\n", szText);
    fflush(fp);
    fclose(fp);
    return 0;
}

int main(int argc, char **argv)
{
    LogToFile("file1");
    LogToFile("test");
    LogToFile("test");
    LogToFile("testgfsdg");

    logToFile2("logToFile2 \n");

    logToFile2("logToFile logToFile\n");

    logToFile3("logToFile3\n");
    logToFile3("logToFile3\n");

    LogToFile4("LogToFile4");
    LogToFile4("LogToFile4");

    printf("Hello, World!\n");  //Set a breakpoint here or press F10 to step into.
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值