![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
铽可喏
专注于C/C++开发的程序员
展开
-
C++ lambda表达式
C++ lambda表达式:可以方便的定义和创建匿名函数Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-> return type { function body } 各项具体含义如下 capture list:捕获外部变量列表 params list:形参列表 mu...原创 2018-08-15 14:13:07 · 98 阅读 · 0 评论 -
Unix Domain Socket
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...转载 2019-02-21 21:52:38 · 1231 阅读 · 1 评论 -
corefile文件开关及生成文件路径
1.core文件的生成开关和大小限制---------------------------------1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。若ulimit -c unlimited,则表示core文件的...转载 2019-03-21 18:11:18 · 1417 阅读 · 0 评论 -
【设计模式】C++ 实现命令模式
介绍命令模式,通常指的是一个对象向另外一个对象发送信息指令的行为模型,比如父母命令孩子写作业,将军命令士兵进攻,点击菜单选择页面等。请求者只需要发出命令,至于命令的接受者,如何实现命令,则由命令的接收者来关心。命令模式由4个角色组成,请求者角色、命令者角色、接收者角色和客户端角色。夏天到了,炎炎烈日,都要靠空调续命,这里就以给空调调节温度为例子。空调是接收者角色,由它来执行具体的升...原创 2019-07-11 18:47:42 · 201 阅读 · 0 评论 -
Linux下lcov单元测试覆盖率
书接上文,要想保持测试的完整性,需要将gtest与lcov配合使用,方能更好地测试源码的质量。一、下载lcov源码源码下载链接:https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/LCOV-1.13/ 二、解压源码进入到解压文件夹,执行命令“make install”安装lcov 三、编译...原创 2019-01-12 23:49:50 · 7513 阅读 · 1 评论 -
win10为VirtualBox安装增强功能失败
环境:在win10系统下安装VirtualBox虚拟机,虚拟机中安装Ubuntu Ubuntu-16.04.3-desktop-amd64.iso VirtualBox5.2.18 Win10 问题:点击虚拟机的“设备”,安装增强功能,提示安装失败,modprobe fail解决方式:执行以下两步sudo ap...原创 2018-08-28 11:38:47 · 9289 阅读 · 1 评论 -
Valgrind 测试内存泄露并生成报告
valgrind --log-file=./valgrind_report.log --leak-check=full --show-leak-kinds=all --show-reachable=no --track-origins=yes (可执行文件) [可执行文件参数]原创 2018-08-24 15:11:29 · 2157 阅读 · 0 评论 -
Virtualbox 共享文件夹 cannot create symlink error 问题
环境: Windows10 + VirtualBox + ubuntu1604 安装VirtualBox增强功能、设置共享文件夹,在复制或者创建新的文件的时候出现了如下问题:cp: cannot create symbolic link `xxxx':Read-only file system或:cp: cannot create symbolic lin...原创 2018-09-04 17:07:56 · 1735 阅读 · 0 评论 -
运行时,so库找不到的原因
ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。ldconfig的主要用途:默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。搜索出可共享的动态链接库,库文件的格式为:lib***.so.**,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,该文件...转载 2018-09-04 17:58:06 · 3150 阅读 · 0 评论 -
编译时动态库名与运行时查找的不一样
需求: 编译第三方库mad,且让库跟随项目环境,不依赖于系统环境。问题描述: 第三方库mad,在Linux上编译后,生成文件libmad.so,重命名为libmadlinux.so,链接入可执行文件。 g++ ./test.cpp -L. -lmadlinux -lsoDemo2 -Wl,-rpath . -o test 运行过程中一直...原创 2018-09-04 18:02:08 · 1457 阅读 · 0 评论 -
Ubuntu下查看ping的源码
1.执行命令:which ping,找到ping的路径为/bin/ping2.找到ping命令属于哪个源码包:dpkg -S /bin/pingroot@ll:/# dpkg -S /bin/pingiputils-ping: /bin/ping可以看出,ping命令是从软件包iputils中编译出来的,接下来下载软件包iputils3.安装软件包:apt source ...原创 2018-11-22 15:40:09 · 1331 阅读 · 0 评论 -
gcc 查看默认的编译标准
执行如下命令,可查看gcc默认定义的预编译宏:gcc -E -dM - </dev/null | grep "STDC_VERSION"查看__STDC_VERSION__的值如果没查到,则默认是c89的标准;如果是#define __STDC_VERSION__ 199901L,则默认支持的是c99标准;如果是#define __STDC_VERSION__ 201...原创 2018-12-24 15:25:51 · 7376 阅读 · 4 评论 -
一篇教会你玩转Linux下gtest单元测试
一、下载gtest 下载链接为 https://github.com/google/googletest 目前最新的版本是v1.8.x,本文以这个为例子 二、认识文件夹将源码解压,进入gtest目录,可看到文件结构如下图所示:GTEST提供了对于多个不同平台的支持,例如msvc文件夹是用在微软Visual Studio中,xcode文件夹是用于Mac Xcode,cod...原创 2019-01-12 22:37:02 · 4146 阅读 · 0 评论 -
Valgrind+callgrind性能测试
valgrind --tool=callgrind ./testcallgrind_annotate callgrind.out.xxxx (xxxx是代称,使用需要更改为实际的编号)python gprof2dot.py -f callgrind callgrind.out.xxxx |dot -Tpng -o report.png最终生成的report.png文件与gprof生...原创 2019-08-01 23:44:47 · 371 阅读 · 0 评论