嵌入式 linux编程中自定义LOG宏示例

来源:互联网 发布:.net编程语言 编辑:程序博客网 时间:2024/05/17 22:34

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <stdarg.h>

#ifdef _DEBUG_JOSEPH
#define _DEBUG_WIFI_KJ
#else
#endif

/*
author : kj
time : 2013-12-06 21:36
instruction:
get the num of the current seconds

 */

int get_current_time_to_jms(char *buf)
{
    struct tm *tmnow;
    struct timeval tv;
    gettimeofday(&tv,NULL);
    tmnow = localtime(&tv.tv_sec);

    sprintf(buf,"%04d-%02d-%02d %02d:%02d:%02d",\
     tmnow->tm_year+1900, tmnow->tm_mon+1, tmnow->tm_mday,tmnow->tm_hour,\
     tmnow->tm_min, tmnow->tm_sec);

    return tv.tv_sec;
}

int personal_print(const char *format, ...)
{

#ifdef _DEBUG_WIFI_KJ
    char now_time[32];
    char s[1024];
    char content[1024];
    bzero(content,1024);
    bzero(now_time,32);
    va_list arg;
    va_start (arg, format);
    vsprintf (s, format, arg);
    va_end (arg);
    get_current_time_to_jms(now_time);
    sprintf(content,"%s %s",now_time,s);
    printf("%s",content);

#else
    return 0;
#endif


}

int main()
{
    char buf[32]="kj";
    personal_print("%s %d The content of buf is %s\n",__FUNCTION__,__LINE__,buf);
    return 0;
}

Compile:

gcc -D_DEBUG_JOSEPH -o macro_printf macro_printf.c

 


0 0