首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言Log工具推荐-easylogger

日志简述 C/CPP日志工具也很多,在之前项目中用过有以下几个:zlog、spdlog、log4cpp等。...这个也挺好用,只需要包含头文件即可,只是这个日志依赖于c++11,有些编译器比较老,不支持,c语言也无法使用。...今天要介绍这个日志是easylogger,这个是c语言版本,所以c/c++都可以用,这个日志官方提供demo和文档比较全,我就不再多说了。...) ├── Makefile.log --- 源码配置Makefile └── out 这里将日志相关文件与头文件路径在Makefile.log里封装好了,该目录下Makefile为新增Makefile...相比 log4c、zlog 这些知名 C/C++ 日志库, EasyLogger 功能更加简单,提供给用户接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。

2.8K20

嵌入式linux下c语言日志log模块,功能增强(二)

OK,按着这个思想,以下是一个实现,c语言log模块: 至于FTP部分,文件压缩为zip部分,用go来写,更容易。这也就是为啥用go来开发嵌入式很合适。要是让你用c写一个ftp,你试试?..." //#ifndef LOGLEVEL //#define LOGLEVEL DEBUG //#endif // 使用了GNU C扩展语法,只在gcc(C语言)生效, // g++c++版本编译不通过...//因linux消息队列,容量和长度有限制,因此若单个消息超1024byte或并发发送几千个消息 //且发送速度很快,大于了队列接收速度,那么肯定,会发送失败 */ #ifndef LOG_H_ #...define LOG_H_ #ifdef __cplusplus extern "C" { #endif enum LogLevel { ERROR = 1, WARN = 2,..."/log" //日志文件名称前缀 #define LOGFILE_PREFIX "log_b503_" //日志文件存在时间 单位(天),会自动删除当前日期-ALIVEDAYS 之前文件 //

4.3K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言】常见C语言概念

    什么是C语言 人和人交流使用是自然语言,就像是汉语、英语、日语。 那人和计算机是怎么交流呢? 使用计算机语言。...目前已知已经有上千种计算机语言,人们们是通过计算机语言程序,给计算机下达指令,让计算机工作C语言就是众多计算机语言⼀种,当然C++/Java/Go/Python都是计算机语言。...2.C语言历史 C语言最初是作为Unix系统开发工具而发明。 像windows、Linux这些都是操作系统 3. 编译器选择VS2022 为什么要有编译器先来了解一下编译和链接。...3.1 编译和链接 C语言是一门编译型计算机语言C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和链接器链接,生成二进制可执行文件,可执行文件才能执行。...C语言把 .c 为后缀文件称为源文件,把 .h 为后缀文件称为头文件。 5.

    8410

    C++】C 语言C++ 语言关系 ( C 语言发展 | C 语言缺陷 | C 语言 + 面向对象 + 高级语言特性 | C++ 语言增加内容 | C 语言C++ 语言应用场景 )

    C99 , C11 , C17 等标准 , 以满足新编程需求 ; 二、C 语言缺陷 C 语言有如下缺陷 : C 语言 没有经历过 缜密 设计过程 , 都是根据需求逐渐完善 , 出现了很多缺陷和漏洞...+ 高级语言特性 1、C 语言衍生高级语言 鉴于 上述 面向过程 C 语言 设计缺陷 , 在 C 语言 基础上 , 引入 面向对象 设计方法 , 同时加入 高级语言特性 , 开发出了 高级面向对象...2、C 语言C++ 语言关系 C 语言C++ 语言 并 不是 竞争关系 ; C++ 语言 是 以 C 语言为基础 加强版本编程语言 , 可以看作是更好 C 语言 , 在 C++ 语言...中 , 可以使用 C 语言语法 , 对 C 语言完全兼容 ; C++ 语言 包含 C 语言 , 在 C++ 代码中可以使用 C 语言语法 , 但是在 C 语言中不能使用 C++ 语法 ; 3、C++...语言应用场景 C 语言C++ 语言应用场景 : C语言 应用场景 : 系统软件、操作系统、编译器等 底层系统级应用 ; C++ 语言 应用场景 : 大型应用程序、游戏 等更 高级应用 ; 在不同

    26420

    C++中log底数理解

    参考链接: C++ log2() C++ 中log是以e为底  log10 是以10为底  现在来看看为什么底数具体为多少不重要? 读者只需要掌握(依稀记得)中学数学知识就够了。 ...假设有底数为2和3两个对数函数,如上图。当X取N(数据规模)时,求所对应时间复杂度得比值,即对数函数对应y值,用来衡量对数底数对时间复杂度影响。...比值为log2 N / log3 N,运用换底公式后得:(lnN/ln2) / (lnN/ln3) = ln3 / ln2,ln为自然对数,显然这三个常数,与变量N无关。...用文字表述:算法时间复杂度为log(n)时,不同底数对应时间复杂度倍数关系为常数,不会随着底数不同而不同,因此可以将不同底数对数函数所代表时间复杂度,当作是同一类复杂度处理,即抽象成一类问题。...排序算法中有一个叫做“归并排序”或者“合并排序”算法,它用到就是分而治之思想,而它时间复杂度就是N*logN,此算法采用是二分法,所以可以认为对应对数函数底数为2,也有可能是三分法,底数为3

    1.2K50

    C语言笔记】C语言编译过程

    下面以windows环境下test.c为例,test.c代码为: #include int main(void) { printf("This is a test program...如图,编译生成可执行文件过程实际包含四个过程:(1)预处理;(2)编译;(3)汇编;(4)链接。...2、预处理(Preprpcessing) 使用预处理器把源文件test.c经过预处理生成test.i文件,预处理用于将所有的#include头文件以及宏定义替换成其真正内容。...预处理命令为: gcc -E test.c -o test.i 上述命令中-E是让编译器在预处理之后就退出,不进行后续编译过程;-o是指定输出文件名。 预处理之后得到仍然是文本文件。...汇编过程命令为: gcc -c test.s -o test.o 上述命令中-c、-o让汇编器把汇编文件test.s转换成目标文件test.o。

    12.2K31

    C 风格简易本地 log 系统

    文章目录 1.系统简介 2.源码 2.1 头文件 localLog.h 2.2 源文件 localLog.cpp 2.3 使用示例 demo.cpp 3.C++ 风格简易 log 系统 1.系统简介...该 C 风格简易 log 日志系统,适合与Linux平台系统,主要用于格式化输出日志到本地指定文件中,可指定log文件数目、最大大小、行数、按时间切换等功能,可满足基本log日志功能。...: log结构指针 // @param sLogBaseName: Log文件名前缀字符串 // @param iShiftType: log文件切换类型, // 0->shift..."); } 3.C++ 风格简易 log 系统 除了上面 C 风格 log 系统,还有一款 C++ 风格 log 系统可供使用,参见本人另一篇博文:C++实现简易log日志系统。...后续将总结提炼出一款远程 log 系统分享给大家,支持将日志输出到指定远程主机。

    54710

    C风格简易本地log系统

    1.系统简介 该C风格简易log日志系统,适合与Linux平台系统,主要用于格式化输出日志到本地指定文件中,可指定log文件数目、最大大小、行数、按时间切换等功能,可满足基本log日志功能。...log // @param pstLogFile: log结构指针 // @param sLogBaseName: Log文件名前缀字符串 // @param iShiftType: log...filename append with date. // // @param iMaxLogNum: 切换log文件最大个数....log whith %s","argument"); } 3.C++风格简易log系统 除了上面C风格log系统,还有一款C++风格log系统可供使用,参见本人另一篇博文:C++实现简易log...后续将总结提炼出一款远程log系统分享给大家,支持将日志输出到指定远程主机。

    85240

    c语言getchar()用法_c语言getchar功能

    (1)语法 int getchar(void); (2)返回值 getchar函数返回值是用户输入第一个字符ASCII码,如出错返回-1,且将用户输入字符回显到屏幕.如用户在按回车之前输入了不止一个字符...,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续getchar调用不会等待用户按键,而直接读取缓冲区中字符,直到缓冲区中字符读完为后,才等待用户按键。...函数值,如果有循环或足够多getchar语句,就会依次读出缓冲区内所有字符直到’\n’.要理解这一点,之所以你输入一系列字符被依次读出来,是因为循环作用使得反复利用getchar在缓冲区里读取字符...,而不是getchar可以读取多个字符,事实上getchar每次只能读取一个字符.如果需要取消’\n’影响,可以用getchar()来清除,如:while((c=getchar())!...补充: putchar()用法: (1)输出:putchar函数只能用于单个字符输出,向终端输出一个字符,且一次只能输出一个字符。

    4.8K60

    C语言】初识C语言

    C语言开发场景: 应用软件     主要包含各种软件如:QQ,百度网盘,游戏      (上层) 操作系统     windows/macOS/Linux    (下 电脑硬件                                                ...层) C语言是一个擅长底层开发语言。...而C语言主要编译器有:Clang/GCC/MSVS。...通过sizeof可以计算出每种类型大小 eg:printf("%d\n",sizeof(char)); 变量与常量: 变量命名:一定不能以简单一两个字母来表示,最好是使用符合其内涵英文单词来命名...4.变量名中区分大小写 5.变量名不能使用关键字(如不能使用int作变量名) 变量分类:局部变量/全局变量 1.在大括号外就是全局变量,在大括号里就是局部变量 2.当全局变量和局部变量冲突时,局部变量优先

    14110

    c语言stl库_c语言string库

    今天推荐一个函数库glib 注意不是glibc https://developer.gnome.org/glib/ 一直在抱怨,标准C中为什么没有类似于STL标准容器,让全世界程序员在数以万次重复实现它们...glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计,实现得非常精致。 你开发过跨硬件平台软件吗?是不是常常为硬件平台差异而苦恼呢?...字节顺序是常见问题之一,大端格式,小端格式,还是PDP格式?这样差异造成BUG会浪费不少时间,同时让代码晦涩难读。glib提供了一套完整宏,利用这些宏编写程序,问题大大简化了。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.9K10

    C语言文件操作_C语言调用文件

    大家好,又见面了,我是你们朋友全栈君。...文章目录 文件打开与关闭 文件读写操作 读/写文件中字符串 格式化读写文件操作 文件定位函数 作业使用案例(自己可以全部完成一遍): 文件打开与关闭 C文件操作用库函数实现,包含在stdio.h中。...fread与fwrite 一般调用形式: fread(buffer,size,count,fp ); fwrite(buffer,size,count,fp ); 参数说明: buffer: 要读入数据块存放首地址或要输出数据块起始地址...size: 每个要读/写数据块大小(字节数) count: 要读/写数据块个数 fp: 要读/写文件指针 返回值: 成功,返count值;出错或文件尾,0值。...20190410001"; int age = 17; fprintf(fp, "%s\t%s\t%d\n", name, no, age); fclose(fp); return 0; } 文件定位函数 C语言规定起始位置有三种

    9.4K10

    C语言----C语言内存函数

    1.这个函数在遇到\0时候并不会停下来 2.如果source和destination有任何重叠,复制结果都是未定义 memcpy函数最终返回是目标空间起始地址 //函数一种写法: 这个函数最终返回是目标空间起始地址...// //这里src指向是数组中3位置 // //dest指向是arr2数组首元素位置 // //拷贝20个字节 // //void*指针不能进行直接计算,void...0; } //memcpy函数不负责重叠内存拷贝,非要使用,结果就是未定义 //只负责不重叠内存 函数返回值是void*类型数据 这个memcpy函数有三个数据 2.memmove--...最前面的一块区域满足dest<src //我们只能从前往后进行拷贝,不然会出错误 //而剩下两块区域可以同时从后往前进行拷贝,那么我们就将这两块区域放在一起 在C语言标准中,明确规定了memcpy只要能实现不重叠拷贝就行...--函数使用 memset是用来设置内存,将内存中值以字节单位设置为想要内容 基本格式: void memset (void ptr,int value,size_t num ) ptr就是指向要被填充内存块指针

    10310
    领券