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

本文展示了如何在嵌入式Linux环境中使用自定义LOG宏进行调试,通过示例代码解释了宏定义及其在调试时的时间戳记录功能。在main函数中调用personal_print宏打印相关信息。

#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

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值