1. 程式人生 > >linux下 C語言除錯之道 WRITE_LOG

linux下 C語言除錯之道 WRITE_LOG

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);							\
}