C/C++
文章平均质量分 67
Bluce-orancle
这个作者很懒,什么都没留下…
展开
-
docker安装
docker是通过 yuminstalldocker安装的,搜了一把,原来是因为linux与docker版本的兼容性问题。那就卸载旧版本安装最新版试试。0.通过uname -r命令查看你当前的内核版本uname-r1.使用root权限登录 Centos。确保 yum 包更新到最新。sudoyumupdate2.卸载旧版本(如果安装过旧版本的话)sudoyumremovedockerdocker-commondocker-selinuxdocker-...转载 2021-10-27 20:47:33 · 155 阅读 · 0 评论 -
vscode远程连接linux端代码并编写
在上一篇的基础上执行下面步骤一。vscode安装remoteDevelopment原创 2021-10-19 10:32:47 · 537 阅读 · 1 评论 -
vscode调试本地linux下共享文件代码
一。建立共享文件夹1.在windows下建立共享文件夹创建文件夹,右键属性->共享页,点击共享在下拉框中选择everyone,然后点击共享2.linux下创建共享文件夹mkdir -p /mnt/share3.挂载共享文件mount.cifs//192.168.1.155/share-spideros /mnt/share/-o user=hao,pass=111111说明://192.168.1.155/share-spideros为windonw...原创 2021-10-18 18:58:24 · 940 阅读 · 0 评论 -
Linux C日志库zlog
今天给项目中增加日志功能,平常都是vs_print来实现,这次想的用一下日志库,最后选用的zlog,因为zlog是一个高可靠性、高性能、线程安全、灵活、概念清晰的纯C日志函数库如下是使用方法:其优势及详细用法直接看手册(zlog使用手册中文版):http://hardysimpson.github.io/zlog/UsersGuide-CN.html若链接进不去可自行下载:https://download.csdn.net/download/fangye945a/10902503一.z..原创 2021-10-11 13:56:27 · 514 阅读 · 0 评论 -
Window下mysql安装以及配置
一、下载MySQL首先,去数据库的官网http://www.mysql.com下载MySQL。点击进入后的首页如下:然后点击downloads,community,选择MySQL Community Server。如下图:滑到下面,找到Recommended Download,然后点击go to download page。如下图:点击download进入下载页面选择No thanks, just start my download就可以开始下载了,当然你要是想注册...转载 2021-10-11 12:18:17 · 457 阅读 · 0 评论 -
centos7环境mysql安装与配置
# 1.下载并安装MySQL官方的 Yum Repositorywget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm# 2.yum安装yum -y install mysql57-community-release-el7-10.noarch.rpm# 3.安装MySQL服务器yum -y install mysql-community-server# 4.启动MySQLsystem原创 2021-10-11 12:00:25 · 192 阅读 · 0 评论 -
git clone报错解决办法
执行ssh -v git@codeup.aliyun.com的时候显示如下这是因为自己的公钥还是添加有问题引起的。主要进行鼠标复制的时候会有空格的原因 引起的。操作如下1.先执行以下命令可删除公钥重新制作ssh-add -Drm -r ~/.ssh2.重新制作公钥ssh-keygen -t rsa -C "你的邮箱"3.安装复制工具进行复制,我的系统是Ubuntu,命令如下sudo apt-get install xclip4.安装之后,执行命令进行复..原创 2021-04-08 16:58:46 · 3864 阅读 · 0 评论 -
Redis,memcached,nginx网络组件分析
1.连接建立redis主线程void acMain(aeEventLoop *eventloop) { //主线程事件循环体 eventloop->stop=0 while(!eventloop->stop){ acProcessEvents(eventloop,AE_ALL_EVENTS | AE_CALL_BEFORE_SLEEP | AE_CALL_AFTER_SLEEP); }}aeApiPoll相当于epoll_wait的封装...原创 2021-03-16 14:48:35 · 183 阅读 · 0 评论 -
网络IO高并发优化,从一万到百万并发性能优化
1.限制网络fd的数量如何修改[root@MiWiFi-R3-srv C10M]# ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals ...原创 2021-03-16 12:31:13 · 706 阅读 · 0 评论 -
select模型+epoll模型+reactor模型
1.服务端实现socket()-->bind()-->listen()-->accept()-->recv()-->send()-->close()2.客户端实现socket()-->connect()-->send()-->recv()-->close()3.tcp三次握手 listen函数客户端--->服务端 发送:SYN(请求连接)、序列号x,进入SYN_SEND状态 connect()...原创 2021-03-15 16:03:36 · 639 阅读 · 0 评论 -
udp
1.如何做到可靠性传输(1)ACK机制 应答机制(2)重传机制 网络丢包的话,需要重传(3)序号机制 发的包有序号,接收端不是按顺序接收的,路由转发可能先收2-1-3包(4)重排机制 收的包先缓存,然后进行重排(5)窗口机制 滑动窗口,为了制约发送的数据 等待用户读取数据,然后释放窗口的资源,防止buffer中的数据越界注:udp在协议栈不会重传2.udp场景(1)实时性要求:音视频通话 、游戏(王者荣耀)(2)节省资源的要求:嵌入式设备(电池供电)、手机状态报...原创 2021-03-13 22:13:53 · 142 阅读 · 0 评论 -
DPDK的理解
1.什么是DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面工具集,为Intel architecture (IA)处理器架构下用户控件高效的数据包处理提供库函数和驱动的支持。通俗来说就是一个用来进行包数据处理加速的软件库。主要专注于网络应用中数据包的高性能处理,网络数据网卡的数据传输。DPDK对外提供基础网络,网卡虚拟化,从网卡取数据进行性能调优。从百万--千万 不在是技术/代码能来实现的(内存池、线程池),很难从代码问题来解决这个问题。.原创 2021-03-13 18:46:29 · 1045 阅读 · 0 评论 -
C++面试总结-C++岗
今天面试了一个C++开发岗,问了如下一些问题,把相应回答也一并总结一下,以便作为记录留存1.并发有几种方式单线程多进程模式 有accept连接时,fork一个进程,然后处理数据收发,连接处理结束之后结束这个进程多线程模式 一个连接,创建一个线程 相比多进程,会节约一些资源,更高效select+多线程 一个线程专门监听端口,accept返回之后就把这个描述符放入描述符集合fd中,一个线程 用select去轮询描述符集合,在有数据的连接上接收数据,另一个线程专门...原创 2021-03-05 18:23:58 · 370 阅读 · 2 评论 -
udp三大高并发应用场景
数据传输:1.尽力可靠 音视频通话2.无序可靠 文件传输,迅雷下载文件,分片下载3.有序可靠 金融转账(包到达并有序,然后才开始处理)腾讯移动游戏技术++UDP可靠性设计 KCP优秀博文选读 用户态+协议栈深度解析 视频1.udp使用场景 音视频通话 实时考虑 游戏 比如王者荣耀 实时性考虑 工业物联网 传感器,5秒钟获取传感器数据,然后上传到服务器,但平常时间是休眠状态 实际有效包只有一个 使用udp发送一个包即可,减少了三...原创 2021-02-19 09:41:50 · 5048 阅读 · 0 评论 -
C/C++对URL分割进行实现
分割URL,并提取其参数值例如:http://download.pchome.net/php/tdownload2.php?sid=18377&url=/system/patch/srsp1.exe&svr=2&typ=0C/C++ code#include #include #include char sU[]="http://***.***.转载 2017-11-17 11:17:56 · 2297 阅读 · 0 评论 -
BSTR与std::string相互转换
1.BSTR -> std::string 举例如下BSTR bstrTest = ::SysAllocString(L”Test”);_bstr_t bstr_t(bstrTest);std::strStl = bstr_t;SysFreeString(bstrTest ); 2.std::string -> BSTR 举例如下std::string原创 2017-11-16 10:05:15 · 3611 阅读 · 0 评论 -
利用NPAPI开发Chrome插件
http://blog.csdn.net/csdnwei/article/details/53606497原创 2017-11-16 10:51:20 · 1244 阅读 · 0 评论 -
二叉树学习
一.树树是一种递归定义的数据结构,是一种重要非线性的数据结构。它是由n(n>=1)个有限节点组成一个具有层次结构的集合。二.树的相关术语节点的度:一个节点含有的子树的个数称为该节点的度。叶节点或终端节点:度为0的节点称为叶节点。非终端节点或分支节点:度不为0的节点兄弟节点:具有相同父节点的节点。树的度:一棵树中,最大的节点的度称树的度。节点的 层次:从根开始定义起,原创 2017-11-16 10:52:36 · 257 阅读 · 0 评论 -
实现string的构造函数,析构函数,拷贝构造函数
1.实现String类的头文件String.h#ifndef STRING_H#define STRING_H#include class String{public:String(const char *str=NULL);String(const String &str);~String();String &operatot= (const Strin原创 2016-07-18 21:56:34 · 399 阅读 · 0 评论 -
Qt小知识点
Qt中的一些知识小结(转)QCreator(2.5.0)安装的时候已经不自带MinGW,因此要自行安装.当然我们也可以用VS的编译器进行编译,这样装了微软的VS后我们在QtCreator中设置好微软的编译器目录,然后在QtCreator中进行编写代码,编译调试等.Qt从源代码编译容易忽略的Perl问题如何从源代码编译Qt,那就是编译前先安装Perl,因为里面有些脚本是用Pe转载 2017-09-18 11:11:41 · 425 阅读 · 0 评论 -
ActiveX,NPAPI,COM总结
一。ActiveX和com(Component Object Model 组件对象模型)Activex,OLE,COM都是微软的一些技术标准。Ole比较老后来发展成Activex,再后来发展成为COM OCX,DLL是扩展名。 Activex有两种扩展名OCX和DLL。实际上你可以把它们的扩暂名字调换。 COM作为ActiveX的更新技术,扩展名也有可能是DLL DLL文件还有可能是动态链接库原创 2017-09-18 10:18:41 · 2056 阅读 · 0 评论 -
内联函数inline优缺点
一。优点1.内联函数被放入符号表中,使用时像宏一样替换,效率高2.编译会检查参数问题,保证调用正确,消除了隐患和局限性3.可以使用所有类的保护成员以及私有成员二。缺点1.不允许过多的代码,代码过大会造成大的内存消耗,最好在5行以内2.不允许有循环或者开关,如果有的话,执行函数代码时间比调用时间开销大转载 2017-03-09 10:11:08 · 1520 阅读 · 0 评论 -
Qt实现读取Excel表,并将读取的信息写进word文档中
1.读取Excel表中信息,在for循环中写入word文档中 QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC); word->setProperty("Visible", true); // 获取所有的工作文档 QAxObject * documen原创 2017-03-05 21:35:19 · 2180 阅读 · 1 评论 -
数据结构理论知识
一.前言。 在开发工作的时候,数据结构的知识总要用到。除了面试需要之外,工作项目开发中也是避免不了的。所以决定对数据结构的知识,自己进行一次全新的学习。二.数据结构知识。1.数据的逻辑结构1)线性结构A.线性表 B.栈 C.队2)非线性结构A.树形结构 B图形结构2.数据的存储结构1)顺序存储2)链式存储3.数据的运算检索、排序、插入、删除、原创 2016-07-20 20:25:07 · 425 阅读 · 0 评论 -
自定义实现的带头结点的链表
//链表实现#include #include //链表结构体typedef int datatype;typedef struct NODE{datatype data;struct NODE *next;}Node;typedef struct LIST{Node *phead;int length;}List;//创建空原创 2016-07-19 23:37:54 · 335 阅读 · 0 评论 -
C++面试题总结
1.MVC含义(模型、视图、控制器)M-Model V-View C-Control 业务逻辑-数据-界面 显示分离的方法组织C是用来确保M与V的同步2.遍历D盘思路:加载D盘QString strTemp;1.使用QFileInfo info=entryInforList(QDir::Dirs | QDir::Files);2.if(info.at(i).原创 2016-07-17 22:39:13 · 340 阅读 · 0 评论 -
C++内存管理
1.内存分配方式总结前言先说说内存的分配方式,分为堆,栈、全局/静态存储区、常量存储区、自由存储区 1)栈。函数局部变量存储单元在栈上创建。因为局部变量的生存周期,在函数结束的时候,栈上存储单元被释放。特点:由于运算符内置于处理器的指令集中,效率很高,分配的内存容量有限。 2)堆。new创建的变量,分配的内存块。特点:需要手动去释放变量的内存块。程序结束后,操作系统会自动回收原创 2016-07-17 22:26:53 · 303 阅读 · 0 评论 -
关于HTTP的理解
1.HTTP的概述。HTTP(Hypertext Transfer Protocol)超文本传输协议,是一种分布式,合作式,多媒体信息系统服务,面向应用层的协议,它基于传输层的TCP协议进行通信,是一种通用的,无状态的协议。2.功能功能:在服务器与客户机之间传输超文本文件3.特点特点:客户/服务器模式,灵活(允许传输任意类型的数据对象),无状态,简单(规模小,速度快),原创 2015-05-10 23:09:53 · 702 阅读 · 0 评论 -
对指针的练习题和答案
一、用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出#include void swap(int *pa,int *pb) { int temp; temp = *pa; *pa = *pb; *pb = temp; } void main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c);原创 2013-10-30 17:00:38 · 2595 阅读 · 1 评论 -
MFC画图
HRESULT ShowPic(CDC *pDC,CString lpstrFile,int x,int y, int nScrWidth, int nScrHeight)//对指定路径文件缩放处理{ IPicture *pPic; IStream *pStm; BOOL bResult; HANDLE hFil原创 2017-04-06 22:08:25 · 449 阅读 · 0 评论 -
面试题汇总
1.多态的实现机制2.MFC消息传递机制3.自定义消息如何实现4.求sizeof需要考虑的内容,虚继承在sizeof中有没有影响,sizeof里面有个虚继承 如果是自己为一个类写一个sizeof函数,应该考虑哪些问题5.求最大子串的算法思路6.MySQL数据库中,如何查看一个表的表结构,如何查看其主键(说出查看的命令)7.数据库的读脏活存放数据库的磁盘出现灾难性事故,有原创 2017-03-30 14:53:50 · 339 阅读 · 0 评论 -
MFC中双缓存机制的使用和实现,程序运行时间计算
1.使用双缓存进行实现绘制图形的 测试用例void CViewCamera::OnDraw(CDC* pDC){CDocHADMap* pDoc = GetDocument();ASSERT_VALID(pDoc);CRect rect;GetClientRect(rect);InitMapDC(pDC->GetSafeHdc(), rect);原创 2017-03-31 11:58:08 · 721 阅读 · 0 评论 -
写注册表操作
1.使用RegOpenKeyEx进行打开注册表2.使用RegCreateKeyEx进行创建注册表3.使用RegSetValueEx进行设置值4。RegCloseKey关闭注册表BOOL CIEOpt::AddPopupWindow(){LoadPopupWindowUrlList();unsigned int i = 0;DWORD dwReg_type = R原创 2017-09-14 18:02:51 · 397 阅读 · 0 评论 -
将SM2加密库从vs2008移植到vs2015上时报错
1.错误LINK2019无法解析的外部符号__vsnprintf解决办法:将legacy_stdio_definitions.lib加入到"链接器-》输入-》附件依赖库"中2.errorLINK2005:___iob__func已经在中定义:解决办法:将/FORCE:MULTIPLE添加到链接器命令行选项C:\Program Files (x86)\Windows Kits\10\原创 2017-08-10 14:41:26 · 638 阅读 · 0 评论 -
对Windows注册表进行注册操作
1。读取xml文件,将AllowPopupWindow.xml文件中url存入到vector中 http://*.bjrcb.com/" /> https://*.bjrcb.com/" /> http://www.bjrcb.com/" /> https://corporatebank.bjrcb.com/" /> https:/原创 2017-08-10 14:23:17 · 621 阅读 · 0 评论 -
证书签名打包
制作证书;(cmd下执行)MakeCert /n CN=msft /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e 06/06/2050 /sv MyKey.pvk MyKey.cerPvk2Pfx /pvk MyKey.pvk /pi 963 /spc MyKey.cer /pfx MyKey.pfx使证书获得本地原创 2017-08-10 14:08:27 · 581 阅读 · 0 评论 -
HOOK钩子函数
因为工作中用到了钩子函数,刚开始认为跟回调函数一样,昨天在使用中发现还是有些去别的,对HOOK钩子函数总结一下一.钩子函数的运用钩子函数是一个处理消息的程序段,通过系统调用,将其挂载在系统上。每当特定的消息发出,在没到达目的窗口前,钩子函数先捕获消息,即钩子函数先得到控制权。二.钩子消息分类1.WH_CALLWNDPROC和WH_CALLWNDPROCRET: 使你可以监视原创 2017-04-27 16:14:43 · 806 阅读 · 0 评论 -
线程池的使用
1.对线程的学习线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅原创 2017-04-06 21:46:09 · 250 阅读 · 0 评论 -
各种钩子函数详解
钩子类型每一种类型的Hook可以使应用程序能够监视不同类型的系统消息处理机制。下面描述所有可以利用的Hook类型。1、WH_CALLWNDPROC和WH_CALLWNDPROCRET HooksWH_CALLWNDPROC和WH_CALLWNDPROCRETHooks使你可以监视发送到窗口过程的消息。系统在消息发送到接收窗口过程之前调用WH_CALLWNDPROCHook子转载 2017-04-28 10:32:57 · 1884 阅读 · 0 评论 -
wchar与char的转换,wchar与string类型转换,vs配置
1.记录相关代码char *wtoc(wchar_t *wText) { DWORD dwNum = WideCharToMultiByte(CP_ACP, NULL, wText, -1,NULL, 0, NULL, FALSE);//把第五个参数设成NULL的到宽字符串的长度包括结尾符 char *psText = NULL; psText = new char[d原创 2017-03-31 16:00:27 · 593 阅读 · 0 评论