`
fly_hyp
  • 浏览: 307824 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

一份c/c++写日志到处都能用的代码

阅读更多




#include "stdafx.h"
#include <stdio.h>
#include <time.h>

#define DEBUG_LOG( str ) log_append_to_file("c:\\test.txt", str,__FILE__,__LINE__ );  

void log_append_to_file(char* filename,char* str,char* sourceFile,int fileLine)
{
	time_t t;
	time(&t);
	struct tm* tp= localtime(&t);
	printf("%x\n",tp);
	char now_str[100];
	strftime(now_str, 100, "%Y-%m-%d %H:%M:%S", tp);

	FILE *fo;
	fo = fopen(filename, "a");
    if (fo == 0) {	
        return;
    }

	fprintf(fo, "%s %s(:%d):%s\r\n",now_str,sourceFile,fileLine, str);
	fclose(fo);
}

int main(int argc, char **argv)
{
/*********************define******************/

	DEBUG_LOG("test");
	printf("Hello World!\n");
	return 0;
} 






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

#ifndef HYP_COMMON_INLINE_H
	#define HYP_COMMON_INLINE_H

#define DEBUG_LOG( str ) printf( "%s(:%d):%s",__FILE__,__LINE__, str );

struct SpeedMardData
{
	time_t startT;
};

static void fatal(char* message);
static void* xmalloc(size_t size);
static void SpeedMard_Start(struct SpeedMardData* data);
static void SpeedMard_stopAndPrint(struct SpeedMardData data,int testCount);

inline void fatal(char* message){
	printf("fatal:%s \n",message);
	exit(0);
}

inline void* xmalloc(size_t size) {
	register void *value = malloc(size);
	if (value == 0)
		fatal("virtual memory exhausted");
	return value;
}

inline void SpeedMard_Start(struct SpeedMardData* data)
{
	data->startT =  time(NULL);
}

inline void SpeedMard_stopAndPrint(struct SpeedMardData data,int testCount)
{
	time_t now = time(NULL);
	printf("now:%d \n",(int)now);
	printf("data.startT:%d \n",(int)data.startT);
	double dTime = difftime (now, data.startT);
	printf("dTime:%f speed %f times/sec \n", dTime,(double)testCount / dTime);
}

inline void debug_append(const char* filename,const char* str)
{
     FILE *fp;
     fp=fopen(filename,"a");
     fwrite(str,sizeof(char),strlen(str),fp);
     fwrite("\n",sizeof(char),1,fp);
     fclose(fp);
}

分享到:
评论

相关推荐

    嵌入式C/C++语言精华文章集锦

    在C++中,`extern "C"`关键字用于声明一个函数或变量使用C语言的链接约定,这在需要与其他语言编写的代码进行交互时非常重要,尤其是在使用C语言编写的库时。 - **意义**:由于C++支持名称修饰(name mangling),...

    c++飞鸽程序源代码

    【C++飞鸽程序源代码】是一份专用于学习和研究C++编程语言的实践案例,它涵盖了网络通信、多线程以及消息传递等核心概念。飞鸽程序,通常指的是一个即时通讯应用,通过该程序,用户可以在同一网络环境下进行快速的...

    MQX_User_Guide.rar_微处理器开发_C/C++_

    《MQX嵌入式系统用户指南》是一份深入解析微处理器开发C/C++编程的宝贵资源,它旨在帮助开发者高效地构建和管理嵌入式项目。MQX操作系统,全称Microprocessor eXecutive,是由菲尼克斯软件公司(Phoenix Software ...

    金山卫士源代码(C++编写的)

    这个压缩包中包含的“金山卫士源代码”是该软件的核心组件以C++编程语言实现的原始代码,对于深入理解软件工作原理以及C++编程实践来说,是一份非常有价值的参考资料。 首先,我们要了解C++语言。C++是一种静态类型...

    C++GreenBrowser 浏览器源码

    C++ GreenBrowser 浏览器源码是一份珍贵的学习资源,它是由资深的VC++开发者精心编写的。这份源码不仅展现了C++的强大功能,还展示了浏览器的底层工作原理,对于想要深入理解网络浏览器开发的程序员来说,无疑是一份...

    挑战编程.zip

    《挑战编程.zip》是一份针对C/C++编程语言的深入学习资料,该资料以文档的形式为编程初学者和进阶者提供了一系列实用的编程技巧和丰富的编程实例。该文档中所介绍的内容不但涵盖了编程的基础知识,还深入探讨了C/C++...

    紫外线强度测试仪源代码

    在本项目中,我们主要关注的是“紫外线强度测试仪源代码”,这是一份用C语言编写的程序,用于实验操作紫外线强度测试仪。C语言是一种基础且强大的编程语言,广泛应用于系统开发、嵌入式系统以及各种科学计算中。源...

    VisualC++开发技术大全11章到25章自已手敲运行的代码

    《Visual C++开发技术大全11章到25章自已手敲运行的代码》这一资源集合了Visual C++编程的精华,...这些章节覆盖了从基础到高级的多个层次,对于想要系统学习Visual C++开发的程序员来说,是一份非常宝贵的参考资料。

    stc12MCU-PN532-code.rar_单片机开发_C/C++_

    标题中的“stc12MCU-PN532-code.rar”表明这是一份与STC12系列单片机和PN532芯片相关的代码压缩包,主要用于NFC(近场通信)功能的开发。STC12系列是宏晶科技生产的一种8位单片机,以其低功耗、高性能和易用性而被...

    JNI测试用例代码及报告

    总之,"JNI测试用例代码及报告"是一个很好的学习资源,它涵盖了JNI的基础知识、实战应用和问题解决,对于想深入了解和使用JNI的人来说,是一份宝贵的资料。通过分析和实践这些测试用例,开发者可以更好地掌握JNI的...

    JNI-DEMO.zip_DEMO_JNI DEMO_java JNI Demo_jni_leveldb jni demo

    Java Native Interface(JNI)是Java平台的标准组成部分,它允许Java代码和其他语言写的代码进行交互。JNI在各种场景中都有应用,...这个DEMO对于初学者来说是一份宝贵的教育资源,有助于深入理解和掌握JNI的使用技巧。

    write_gpio.zip_嵌入式Linux_C/C++_

    C/C++编程语言是进行嵌入式开发的常用工具,特别是在底层硬件交互时。"write_gpio.zip"这个压缩包很显然是为嵌入式Linux初学者准备的一份资源,它包含了一些驱动开发的文档和实例,有助于理解GPIO驱动的编写。 在...

    visualc++编程宝典光盘源代码1

    《Visual C++编程宝典光盘源代码1》是一份宝贵的学习资源,它包含了大量关于使用Microsoft Visual C++进行程序开发的实际示例和项目代码。这份资料是学习和提升C++编程技能的理想伙伴,尤其适合那些希望深入理解MFC...

    facebook用c语言写的核心源码

    通过研究这些核心源码,开发者不仅可以了解Facebook如何利用C语言优化大规模的Web应用,还可以学习到高级的系统编程技巧和最佳实践,这对于任何希望提升自身C语言编程能力或理解大规模系统构建的人都是一份宝贵的...

    《亮剑Visual C++项目开发案例导航》源文件

    《亮剑Visual C++项目开发案例导航》源文件是一份集合了C++编程语言在实际项目中的应用案例,旨在帮助开发者通过具体的实例学习和掌握Visual C++的使用技巧。这份资源可能包含了多个项目的源代码,涵盖了不同的编程...

    CS1237驱动,cs1237驱动程序,C,C++源码.zip

    C++则在C的基础上增加了面向对象特性,使得代码组织更加模块化,便于复用和维护,但可能在某些环境下不如C语言高效。 在提供的源码中,我们可以期待找到以下部分: 1. 驱动初始化和卸载:这部分代码负责在驱动加载...

    c++课程设计-个人收支管理系统 (1).rar

    【标题】:“C++课程设计-个人收支管理系统 (1).rar”揭示了这是一份基于C++编程语言的课程设计项目,目标是构建一个能够帮助用户管理个人财务的应用程序。这个系统应该具备记录收入与支出、分类统计、预算设置、...

    热血江湖服务端C++源代码,完整游戏服务器代码

    《热血江湖服务端C++源代码》是一款专...总之,《热血江湖服务端C++源代码》是一份宝贵的教育资源,对于想要提升游戏服务器开发能力的程序员来说,它不仅提供了实战经验,更是深入学习C++和游戏服务器设计的绝佳实例。

    高质量C++与C指南.doc

    这份高质量C++与C指南旨在为开发者提供一套有效的编程规范和最佳实践,帮助他们写出更健壮、更易读、更易于维护的代码。这份文档由林锐起草,经过朱洪海的审查和修正,确保了内容的准确性和实用性。 **第1章 文件...

Global site tag (gtag.js) - Google Analytics