linux下 C语言调试之道 WRITE_LOG

时间:2021-04-09 09:17:03

Linux下面c语言的调试很让人头疼,一般过一段代码就要printf一下或是写个函数输出,然后今天看到大牛代码里的一个宏特别简练易用,所以收藏一下。

#define WRITE_LOG(FORMAT, ...){\
do{\
FILE* fp= fopen(LOG_FILE, "a");\
struct tm* pt;\
time_t time_now;\
struct timeval tv;\
gettimeofday(&tv, NULL);\
time(&time_now);\
pt= localtime(&(tv.tv_sec));\
fprintf(fp, "%04d-%02d-%02d %02d:%02d:%02d.%03u "FORMAT"\n", \
pt->tm_year+1900,\
pt->tm_mon+1,\
pt->tm_mday,\
pt->tm_hour,\
pt->tm_min,\
pt->tm_sec,\
(u32)(tv.tv_usec)/1000,\
##__VA_ARGS__);\
fclose(fp);\
}while(0);\
}