自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 dll,lib,.a,.so的联系与区别。什么是共享库?与dll的区别是什么?

dll,lib,.a,.so的联系与区别。什么是共享库?与dll的区别是什么?区别与联系静态库与动态库问题疑问:什么是共享存档?其他内容(map,pdb)文件区别与联系 本文结合所学和理解进行简单了描述dll与lib,.a,.so文件的关系与区别。同时对自己学习过程的疑问进行解答记述。 dll,与lib是Windows下描述封装代码库的一种格式,.a,.so是linux下的。dll与.so是动态库,lib与.a是静态库。静态库与动态库静态库(lib,.a)是以静态的方式(隐式方式)将li

2021-03-28 15:33:56 6979 1

原创 MFC 中对mysql数据库的datetime 类型的处理:datetime类型转换为CTime方法以及对CTime进行日期加减操作

情景: 当使用mfc 连接mysql 数据库后。在数据库中建表使用了日期 datetime 类型。表示的是年月日时分秒。而在mfc端接收后,若用c语言进行处理。在结果集MYSQL_RES中,是以char指针指向存储内容的。此时可以将内容转换为CString类型。CString 类型的构造函数中可以直接通过char*构造对象。CString 转换为CTime: MY...

2020-03-27 17:29:32 1036

原创 关于MFC 选择windows socket后,连接mysql数据库而引用的头文件 #include "mysql.h" 造成头文件重复包含问题

关于MFC 选择windows socket后,连接mysql数据库而引用的头文件 #include "mysql.h" 造成头文件重复包含问题主要产生的原因解决方法主要产生的原因当选择了MFC 的Windows Sockets 后,在头文件 “stdAfx.h"中会多出 下面这句话**#include <afxsock.h>** 。在头文件<afxsock.h>中可以...

2020-03-23 21:01:13 273

原创 webbench压力测试工具源码剖析(二)--对命令行函数get_opt,字符串处理函数strstr等分析

第一篇是对源码逻辑和结构的梳理,这次主要是对里面重要的函数进行分析。比如说对命令行进行处理的getopt_long函数。在整个工具里面,很多地方只是对格式的处理。在获取命令行,分割命令,然后把命令或者参数有填充到请求报文段中。命令行处理函数get_opt,getopt_long。 字符串处理函数strstr,strchr,strcspn。 i/o处理时的setvbuf函数。...

2019-08-10 21:20:33 223

原创 webbench压力测试工具源码剖析(一)

Webench是一款轻量级的网站测压工具,最多可以对网站模拟3w左右的并发请求,可以控制时间、是否使用缓存、是否等待服务器回复等等,且对中小型网站有明显的效果,基本上可以测出中小型网站的承受能力,对于大型的网站,如百度、淘宝这些巨型网站没有意义,因为其承受能力非常大。同时测试结果也受自身网速、以及自身主机的性能与内存的限制,性能好、内存大的主机可以模拟的并发就明显要多。 ...

2019-08-10 18:25:45 405

转载 linux下进程间通信方式ipc以及socket

在同一台主机中,进程间通信的方式有管道(有名管道,匿名管道),信号量,共享内存,消息队列。在不同的主机中,用socket和Streams支持不同主机上的通信。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点:它是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。它只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。它...

2019-07-24 21:20:56 298

原创 Linux下重定向命令函数总结

1.输入/输入控制cmd < file/dev 将文件或设备作为命令的输入。cmd > file/dev 将命令执行的结果输入到文件或设备。cmd >! file/dev 将命令执行的结果送到指定的文件,若文件已经存在则覆盖,或者设备。cmd > & file/dev 将命令执行时屏幕所产生的任何信息写入指定的文件中或设备。cmd >&...

2019-07-23 22:11:43 995

转载 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全

如何查看linux系统下的各种日志文件 linux 系统日志的分析大全日志分类:1. 连接时间的日志连接时间日志一般由/var/log/wtmp和/var/run/utmp这两个文件记录,不过这  两个文件无法直接cat查看,并且该文件由系统自动更新,可以通过如下:  w/who/finger/id/last/lastlog/ac 进行查看  [root@xho...

2019-07-23 20:03:44 4275

原创 memset,memcmp,memmove,memcpy浅析笔记以及与字符串处理函数strcmp,strcpy等的区别分析

目录:memeset,memcmp,memmove,memcpy函数作用以及使用时注意的地方。 与strcpy,strncpy,strcmp,strncmp,strcasemp("abc","ABC")区别。一.内存处理函数。1.memset 函数作用。memset的作用是把指定的一段内存设置为第二个参数指定的值。 memset(内存地址,要设置的数,字节数)。memset是按照字...

2019-07-19 18:54:14 629

原创 SGI STL一级二级空间配置器代码剖析笔记

STL不仅是一个可复用组件库,而且是一个包罗算法与数据结构的软件框架。说到框架本身就有庞大,稳定,完整而可扩展的含义。因此学习STL源码不仅可以帮助我们编写良好代码的习惯,而且能够让我们熟悉算法,数据结构,我们也会受到这种编程思维影响,在编写代码时考虑全方面,可复用,高效的情况。只要好好的分析,一定能收获很多。我也是菜鸟一只,在这里想将自己看的与想的记录与分享!我剖析的是SGL ...

2019-07-08 21:27:00 346

转载 继上次分析C语言指针后,接分析c语言复杂指针以及typedef与define的作用以及区别

文章目录:1.复杂指针讲解以及练习。2.typedef与define作用以及区别。3.用typedef对复杂指针重命名。一。复杂指针讲解以及练习。我觉得有一遍文章讲解讲解复杂指针非常好,直接引用过来。下面第一段就是分析复杂指针的方法:右左法则:首先从最里面的圆括号(未定义的标识符)看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面...

2019-07-07 09:17:22 207

原创 C++虚函数,虚指针,虚表浅析笔记

目录:1.虚函数的作用。2.什么是虚指针,什么是虚表。3.存在虚函数时,对单继承,多继承,有覆盖,无覆盖中对虚指针,虚表的讨论。(vc6.0的一个bug)4.总结。1.虚函数的作用虚函数就是为了实现动态绑定,不像是重载,内联函数,在编译期间已经知道要执行那个函数。而是在执行时通过动态绑定机制寻找到应该正确执行的版本函数。主要实现是通过基类指针指向派生类,然后实现多态。...

2019-07-03 22:40:50 1172

原创 C语言中多种指针浅析笔记

本文章主要讨论c语言中的一些简单的指针和一些学习其过程的总结(用自己的话)。目录:1.普通指针。 2.二重指针。 3.行指针。 4.指针数组,数组指针。 5.指针函数,函数指针。 6.复杂指针解析。(另一篇文章)本篇中列举了一个例子,(函数指针函数)1.普通指针。int a =10;int *p = &a;char *c="abcd";char *p=c;...

2019-07-01 20:31:57 214

原创 C语言二维数组,三维数组浅析笔记

关于二维数组:int arr[2][3]={1,2,3,4,5,6};前言:可以将二维数组理解为"数组的数组"。数组名a为行指针。 从二维数组角度看,arr代表了二维数组首元素的地址。现在首元素不是一个单独的变量,而是一个一维数组。因此arr代表了首行的首地址。a+1就是下一行的地址。也可以表示为a[1],同理都有a[0],a[2]。分别表示第0行和第二行的地址。既然他们...

2019-06-28 23:17:28 7238

原创 C++ 中对const关键字讨论以及constexpr

一 .const关键字与最基本性质。定义一个常量:const int bufferSize = 512需要注意的是:const int bufferSize = 512;bufferSize = 10; // 错误 常量不能改变 也就是说常量只能作为右值//上面代码与下面相同int a =10;bufferSize = a; //错误//const int k; ...

2019-06-25 23:26:50 211

原创 对于类与结构体的字节对齐以及C++11中关键字alignas,alignof

一.什么是字节对齐? 从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。二.为什么要字节对齐? 主要原因是用空间来换取存储效率。访问的话就是类似 硬件每次读取地址的位置差。相当于pc = pc+1;每次移动...

2019-06-23 16:30:42 1772

转载 C++中虚函数与虚继承区别浅析笔记

虚继承和虚函数是完全无相关的两个概念。虚函数:是在函数声明/定义时,必须加上virtual关键字。作用就是让其派生类能够覆盖此函数,从而实现多态(运行时多态)。补充:编译时多态性:通过重载函数和运算符重载实现。运行时多态性:通过虚函数和继承实现。还有一点就是在派生类中,继承基类同名的虚函数后,不管派生类中显示写不写virtual,此函数依然是虚函数。还有一种纯虚函数。纯虚函数在基类...

2019-06-23 09:19:50 1088

原创 C++中重载,覆盖(重写),隐藏(重定义)浅析笔记

对于重载:其范围首先是在同一个类中,基本条件为函数名相同,参数不同(包括类型,个数,顺序),返回类型不影响。对于覆盖:首先是存在父子关系的类中,也就是不同类中。覆盖的条件是 基类中 函数必须存在virtual关键字,而且在派生类中,有一个同函数名,且参数也相同的函数。此时则为覆盖。对于隐藏:也是在父子关系的类中,出现了同名函数,只要不是覆盖,就是隐藏。隐藏的角度:隐藏是对于派生类来说。...

2019-06-22 23:38:09 222

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除