自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tcp相关

1.tcp三次握手连接前客户端创建socket后为CLOSED状态,服务端调用accept为LISTEN状态。客户端和服务端有各自的seq序号。客户端发送连接请求,SYN=1,Seq=x,客户端状态变为SYN_SENT。服务端接收到请求后,发送SYN=1,ACK=1,seq=y, ack=x+1,状态变为SYN_RCVD。客户端收到应答后,发送ACK=1,ack=y+1 seq=x+1.状态变为ESTABLISHED.服务端接收到ACK后,状态变为ESTABLISHED.连接建立成功。2.tcp

2021-09-15 23:35:07 129

原创 linux程序内存布局、线程栈、函数栈

1.linux内存布局原文链接:https://blog.csdn.net/yangkuanqaz85988/article/details/52403726Linux 对进程地址空间有个标准布局,地址空间中由各个不同的内存段组成 (Memory Segment),主要的内存段如下:程序段 (Text Segment):代码数据段 (Data Segment):已初始化全局变量或者静态变量BSS段 (BSS Segment):未初始化的全局变量或者静态变量堆区 (Heap) : 存储动态内存分

2021-09-09 22:42:10 536 1

原创 linux项目组织(autoconf/automake/configure.ac...)

autoconf参考https://blog.csdn.net/u010020404/article/details/82770848文件组织每个模块或者组成系统的每个可执行程序单独使用一个目录,每个目录下布置autoconf等生成各自的Makefile文件。

2021-05-03 16:14:49 136

原创 计算机组成

计算机构成:cpu(缓存)、内存、主板(总线、BIOS、USB接口)、块存储设备(硬盘、U盘、CD-ROM等)、显卡(显存)、显示器、键盘、鼠标、网卡、蓝牙设备。linux设备:块设备:以块为单位进行I/O,支持随机寻址。如硬盘、U盘、CD-ROM。字符设备:以字符为单位进行I/O。如键盘、调制解调器、串口。网络设备:以帧为单位,是特殊I/O设备,不在/dev下。...

2021-04-07 22:33:57 114

原创 流媒体相关基础知识

流媒体相关基础知识分辨率、像素、480/720/1080P帧率分辨率、像素、480/720/1080PP:表示逐行扫描 (progressive scan)480P 分辨率:640*480 = 30万像素720P 分辨率:1280*720 = 921600 92万像素1080P 分辨率:1920*1080 = 2073600 200万像素 接近2K4K 分辨率:4096*2160 =...

2020-02-09 12:45:39 762

转载 凭借“B站源码泄露”事件,go语言重回大众视野

https://blog.csdn.net/GUDUzhongliang/article/details/89469746

2020-02-03 15:02:36 217

原创 c/c++内存对齐实例说明

关于内存对齐,先让我们看四个重要的基本概念:1.数据类型自身的对齐值:对于char型数据,其自身对齐值为1,对于short型为2,对于int,float为4,long,long long,double,指针类型为8,单位字节。64位系统:sizeof(char):1sizeof(short):2sizeof(int):4sizeof(long):8sizeof(long long)...

2020-01-31 20:47:08 197

原创 gdb实用知识及命令

三种常用调试方式1.gdb 文件名2.gdb -p 进程号3.gdb core

2020-01-31 20:46:14 217

原创 makefile、g++编译相关

g++-g:加调试信息-o:指定输出文件-std=c++11 指定c++11-lpthread 多线程库 需要加在-o后面,否则还是会提示undefined reference to `pthread_create’。

2020-01-31 20:45:27 151

原创 大端(网络字节序)、小端(主机字节序)

小端(主机):低存低(内存低地址保存低位字节)大端(网络):低存高(内存低地址保存高位字节)

2020-01-31 16:53:04 129

原创 CPU访问内存方式、虚拟地址到物理地址转换、内存页表结构

内存对齐什么是内存对齐CPU访问内存方式新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入什么是内存对齐CPU...

2020-01-31 12:52:52 2380

原创 软件开发中团队建设

软件开发中团队建设

2019-07-07 19:37:07 397

原创 如何做文档、代码评审

1.文档评审需求分析架构设计/概要设计/总体设计文档详细设计文档测试文档2.代码评审

2019-07-07 19:36:12 602

原创 软件开发中程序兼容性相关问题及处理

1.相关概念向后兼容(Backward compatibility,=向下兼容):“后”指“落后”,即旧的版本。指升级新版本程序后,能后导入旧版本程序的数据(个人设置、配置文件等),并正常运行。include data formats and communication protocols.向前兼容(forward compatibility,=向上兼容):“后”指“落后”,即旧的版本。指升级...

2019-07-07 17:51:11 3949

转载 Ubuntu下C/C++搭建持续构建环境 Jenkins+SVN+CppCheck

1111

2019-06-16 19:13:36 678

转载 代码检测工具

1.代码检测工具对比分析:C/C++代码静态分析工具调研https://www.jianshu.com/p/92886d979401CPPTest重点关注2.内存泄漏检测工具https://www.cnblogs.com/cnjy/p/4484951.htmlvalgrind重点关注【代码质量】C++代码质量扫描主流工具深度比较https://blog.csdn.net/wetes...

2019-05-02 01:20:51 2281 1

原创 C语言实现面向对象(封装、继承、多态)

#include <stdio.h>#include <stdlib.h> typedef void (*FUNC_TYPE)(void *); //虚函数表结构struct vtbl{ FUNC_TYPE dance; FUNC_TYPE jump;};//基类struct base{ /*virtual table*/ struct...

2019-05-01 19:59:08 714

转载 如何正确的给新创建的线程传递参数

问题背景描述:假设有一个服务端程序,主线程用epoll来监控socket通信,如下:int mian(){bind(listen_fd,.........);//代码段省略while(1){ trigger_num = epoll_wait(epoll_fd, events, MAX_EVENT, 500); for(int i = 0; i < trigger_num;...

2019-05-01 13:27:43 1503

原创 TCP连接断开正常流程(避免残留LAST_ACK,FIN_WAIT2,CLOSE_WAIT)

背景:测试socket程序,假设服务端监听5660端口,客户端去连接。客户端和服务端程序退出后,服务端查看端口,有时会存在处于LAST_ACK状态的5660端口。导致服务端不能马上重开继续绑定5660端口,会绑定失败。TCP连接断开流程图参照: 原因分析:根据上图,服务端残留LAST_ACK状态的socket,是由于服务端调用close后,没有收到客户端返回的ACK确认包导致。比较好的...

2019-05-01 13:07:48 2192

原创 back_up

m_tabCtrl.InsertItem(0,_T("1")); m_tabCtrl.InsertItem(1,_T("2"));m_DlgTab1.Create(IDD_DLG_TAB1, &m_tabCtrl);m_DlgTab2.Create(IDD_DLG_TAB2, &m_tabCtrl);

2019-04-22 00:53:10 263

原创 epoll实例

epoll实例@TOC#include<stdio.h>#include<string.h>#include<stdlib.h>#include<unistd.h>#include<sys/socket.h>#include<netinet/in.h>#include<string.h>#inclu...

2019-04-19 23:09:16 205

原创 MFC常见面试题,知识点汇总(持续更新)

1.mfc中的主要类继承图由于CDocument 衍生自CObject,所以它就有了CObject 所支持的一切性质,包括执行时期型别信息(RTTI)、动态生成(Dynamic Creation)、文件读写(Serialization 序列化)。又由于它也衍生自CCmdTarget,所以它可以接收来自菜单或工具栏的WM_COMMAND 讯息(消息处理)。由于CView 衍生自CWnd,所以它可...

2019-02-23 11:08:27 1774

转载 面向对象三大特性五大原则 + 低耦合高内聚

https://www.cnblogs.com/corvoh/p/5747856.html

2019-02-22 20:19:24 180

原创 负数在内存中的存储方式

https://blog.csdn.net/u012511672/article/details/51724272https://blog.csdn.net/yanbao4070/article/details/80109487

2019-02-20 21:08:55 1975

原创 C++运算符结合性(左结合,右结合)

决定表达式计算顺序时,先看运算符优先级,优先级高的先计算。优先级相同时才考虑结合性。优先级相同的结合性必须一致。【右结合举例】=号为例:a=b=c先计算等号右侧的,等价于:a=(b=c)**【++p,++p,p++】运算符优先级:后自增&amp;amp;amp;amp;amp;gt;(解引用) (解引用) = 前自增++p:(解引用) = 前自增 考虑结合性,是右结合,所以相当于(++)p;++*p(解引...

2018-11-22 01:35:15 8752 1

原创 C++ const整理(修饰不同变量,函数)及函数重载

const为限定声明符。使变量变为只读。【修饰全局变量】作用于变为当前文件,所以可以在头文件中定义,被其他文件包含,每个文件定义含有相同的定义和初始化值。【修饰函数局部变量】将变量属性改为只读。生存期与函数相同。函数被调用后分配空间。【不可修饰非成员函数或静态成员函数】int g_func() const{return 0;}上述代码编译错误:error: non-membe...

2018-11-22 01:18:46 268

原创 C++各变量在不同数据段的分配(全局(静态)变量,Const,局部变量等)

环境Ubuntu 64位系统 + g++5.4g_iUnInit 's addr=0x6022b4 value:0 //全局未初始化变量 bss段g_iInit 's addr=0x6020a0 value:100 //全局已初始化变量 全局数据段stiUnInit 's addr=0x6022bc value:0 //静态(函数体外)为初始化变量 b...

2018-11-22 00:44:41 1003

转载 linux(ubuntu)linux下安装eclipse详细教程

https://www.cnblogs.com/zyrblog/p/8548270.htmljdk安装https://www.linuxidc.com/Linux/2017-06/144732.htm

2018-10-25 20:58:12 267

原创 理解条件变量 互斥锁 信号量 相关概念以及各自适用的场合

互斥锁(mutex):对临界区资源实现互斥访问。条件变量:在满足某个条件时执行某个操作时使用。避免循环检测造成的cpu浪费。需配合互斥锁使用。(比如在多个线程可能改写的全局变量值为100时,执行某项操作)信号量(semaphore):主要用来表示某种资源是否可用(0或1)或可用资源数(检查资源数是否大于0)。signal:信号...

2018-10-25 19:39:19 948

转载 cc、gcc、g++、CC的区别概括

gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语言...

2018-10-23 19:39:00 221

原创 linux开发常用命令

cd… cd - touch rm -rf mkdir rmdir pwd whereissource :通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source /etc/profile。source .profile(等于 . 命令 . ....

2018-10-23 00:19:14 195

原创 抽象基类及其子类的对象定义

1.不能定义抽象基类的对象。2.继承于抽象基类的类必须实现基类的纯虚函数后才能定义子类的对象。#include &lt;iostream&gt;using namespace std;class A{public: A():i(123){ cout &lt;&lt; "A::A()" &lt;&lt; endl; } int i; virtual int getValue(...

2018-10-22 23:31:30 501

转载 指针,const,数组

const int * pOne; //指向整形常量 的指针,它指向的值不能修改int * const pTwo; //指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。const int *const pThree; //指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。int *f(int i, int j);int (*p)(...

2018-10-20 22:00:42 672

原创 C++ static/onst/static const成员的声明定义和初始化

Static成员类内声明,类外定义和初始化(可不初始化),类外不带static关键字。Const成员:初始化列表初始化。Const static成员:类内初始化或者类外初始化,不能用初始化列表。...

2018-10-20 14:18:17 224

原创 C++实现线程安全的单例模式

#include&amp;amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;amp;gt;#include &amp;amp;amp;amp;amp;amp;amp;lt;pthread.h&amp;amp;amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;amp;amp;amp;amp;lt;stdlib.h&amp;amp;amp;amp;am

2018-10-20 11:46:39 221

空空如也

空空如也

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

TA关注的人

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