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

  1. #define WRITE_LOG(FORMAT, ...){ \
  2. do{ \
  3. FILE* fp = fopen(LOG_FILE, "a"); \
  4. struct tm* pt; \
  5. time_t time_now; \
  6. struct timeval tv; \
  7. gettimeofday(&tv, NULL); \
  8. time(&time_now); \
  9. pt = localtime(&(tv.tv_sec)); \
  10. fprintf(fp, "%04d-%02d-%02d %02d:%02d:%02d.%03u "FORMAT"\n", \
  11. pt->tm_year+1900, \
  12. pt->tm_mon+1, \
  13. pt->tm_mday, \
  14. pt->tm_hour, \
  15. pt->tm_min, \
  16. pt->tm_sec, \
  17. (u32)(tv.tv_usec)/1000, \
  18. ##__VA_ARGS__); \
  19. fclose(fp); \
  20. }while(0); \
  21. }
09-05 20:31
查看更多