- 博客(21)
- 收藏
- 关注
原创 https
https确切的说不是一种协议而是http+ssl结合体,http报文经过了ssl层加密后进行tcp传输,在ssl层使用非对称加密和对称加密,对称加密:是指发送方和接收方使用同一个密匙去加密和解密数据,对称加密特点:算法公开,加密和解密速度快,适合大量数据进行加密非对称加密:非对称加密使用一对密匙,公匙和私匙,且二者成对出现,公匙为公共密匙,任何人都可以得到,用其中任何一个进行加密,另一...
2019-08-30 17:53:36
326
原创 http
http协议是一种超文本传输协议,属于应用层协议,底层使用tcp协议用作支持,默认端口号为80http报文:http报文由请求行,请求头部,请求数据三部分组成请求行:请求方法:请求对应的url 和http版本号请求头部:包含若干个属性,格式为属性名:属性值,服务器根据这些获得客户端信息报文体:通过param1=val1¶m2=val2将数据变成格式化串http...
2019-08-30 17:07:18
495
原创 c++函数堆栈调用
由一个.cpp/.c文件到达一个可执行文件分为以下几部分预编译阶段:进行宏替换,删除注释,展开头文件,添加行号等编译阶段:进行词法,语法,语义分析,和代码优化,生成汇编指令汇编:翻译指令连接阶段:合并段和符号表,符号解析运行阶段:建立虚拟地址和物理映射,加载指令和数据,程序入口地址写入寄存器中c++内存分布c++函数调用参数传递(编译器为vs2013)执行一个简单的函数#inc...
2019-07-27 17:20:28
499
原创 TCP
tcp是面向连接的可靠的流式传输通信协议它的可靠体现在{滑动窗口拥塞控制超时重传确认应答}流式传输{向水流一样没有边界,发送方多次发送,接受方根据缓冲区来接受}tcp的三次连接{}为什么不能两次握手{当一个客户端和服务器端已经断开连接,现在一个已经失效的请求连接报文到达了服务器端,则服务器向客户端发送连接报文,但客户端并没有请求连接,放弃这个报文,但在服务器端...
2019-05-06 18:17:46
199
原创 fork源码分析
fork可以让我们创建一个和当期进程一模一样的进程,新的进程称为子进程,旧的进程称为父进程,子进程继承了父进程的文件描述符,进程上下文,地址信息和PCB。父子进程:子进程继承了父进程的大部分属性,但还有一部分不同父子进程的pid不同fork的返回值不同运行时间不同fork一:进程由程序段,相关数据段和PCB三部分组成称为进程实体,一般情况下简称进程进程是进程实体的运行过程,是系统资...
2019-03-05 19:59:39
246
原创 fork实例
fork复制一个进程其中子进程返回值为0,父进程返回值为子进程的pid,因此可以用此方法用来分断父子进程 //此时输出三个A三个B 1 # include <stdio.h> 2 # include<sys/types.h> 3 # include <unistd.h> 4 int main...
2019-01-25 14:40:40
510
原创 常见的七种排序
排序算法大体可分为两类非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆排序)、归并排序(二路归并排序和多路归并排序);线性时间非比较类排序:计数排序,桶排序,和基数排序交换类排序:冒泡排序:重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。简单来说就是不停的比较,交换直到没有任何...
2019-01-19 21:39:38
247
原创 地址空间
地址访问分为实地址模式,保护模式实地址模式:段寄存器 &amp;lt;&amp;lt;4 + 寄存器 ——&amp;gt; 物理地址典型代表就是inter 8086处理器:该处理器为16位处理器,地址线20根(ALU为16位)里面存在四个内存区段寄存器,CS(可执行代码)、DS(数据)、SS(堆栈)和ES(其他)该cpu要访问1mb的空间,但16位只能访问64k的空间,086 把段地址左移 4 位然后...
2019-01-14 18:39:18
662
原创 内核态和用户态
在intel x86的架构上cpu提供了0到3的权限等级,其中0最高,3最低,在linux中使用了两个等级,分别为0等级内核态,3等级用户态刚开始时进程处在用户态,但当进程执行一段时间后,可能对系统资源或者硬件设备进行使用则会发生用户态到内核态的转变,因为在内核态下权限等级最高,可以执行任何操作,并在资源使用上没有限制,当然内核中提供了部分接口供用户使用,这些接口就是系统调用,比如malloc ...
2019-01-13 11:33:23
176
原创 linux基础
windows为单用户linux为多用户1.目录结构|文件系统/bin可执行程序或命令/boot内核与系统启动有关的文件/home普通用户的家目录/etc系统配置文件/lib库文件/proc虚拟目录,进程在内存中的映像/usr系统运行过程中,不经常修改的文件/var系统运行过程中经常修改的文件/root管理员家目录/dev设备文件/mnt临时挂载点/tmp 临时文件夹,...
2019-01-13 10:47:29
125
原创 父子进程简单分析
fork()为linux中进程复制进程函数,为系统调用fork()的过程大体可分三步 1:申请pid。2:复制pcb。3:复制进程主体。fork()一次会有两个返回值,其中一个返回的给父进程为子进程的PID,另一个返回子进程返回值为0。1. 因为在fork()时会复制父进程的pcb,Fork之后,子进程会拷贝父进程的PCB结构,然后对PCB里面数据进行修改,父进程的页表直接拷贝给子进程,父子进程...
2019-01-12 23:00:01
1976
原创 虚函数,虚继承
多态时实现了接口复用c++中实现多态有两种,一种是静多态,另一种是动多态静多态通过重载完成静多态又叫静态绑定或早绑定,在编译期间确定函数入口地址动多态通过虚函数完成动多态又称动态绑定或晚邦定(在运行时动态确定函数入口地址,call的是寄存器)虚函数关键字virtual在基类中定义一个虚函数会产生一个虚函数指针,指向一个虚表(虚表在编译期间生成)只有数据段和指令段才能加载到内存,把虚表...
2019-01-04 22:59:19
214
原创 继承
继承是为了实现代码的重复使用class A{public:A(){}~A(){}private:int a;}class B:public class A{public:B(){}~B(){}private:int b;}B通过公有继承A三种继承方式继承之后的访问限定符public protected privat...
2019-01-04 21:53:47
130
原创 函数的默认值,内联函数,函数重载
函数默认值c++在函数方面比c多了个默认值,实际是当给函数不传参数是该函数就会使用默认值对参数进行赋值,当然默认值是从右向左依次赋值void sum(int a,int b=2,int c=3){}int main(){sum(1);//因为a无默认值,所以要传参数}函数默认值的特点自右向左,依次设计默认值不能重复赋值(即如果函数声明和函数定义分开,函数声明设置了默认参数,函数...
2019-01-04 21:03:52
190
原创 c++类模板
函数模板是为了代码的重复使用把类型设置为参数c++中类模板的定义为template “typename可以换成class”class stack{public:stack(){}//构造函数~stack(){}//析构函数stack(const stack& rsh)//拷贝构造函数stack& operator=(const stack& r...
2019-01-04 20:28:25
141
原创 模板
c语言泛型 void* 宏函数c++ 泛型 ,函数重载 模板函数模板{ template//模板关键字 typename//定义类型关键字 template<typename T> T fun(T a,T b) { return a+b; }//函数模板返回a+b值, T//代表类型,把类型参数化 ...
2018-11-07 17:36:50
110
原创 类
this指针指向对象的生存空间在类外定义的函数当作普通函数处理,在类内定义的函数当作内联函数处理。拷贝构造函数名和类名相同 eg:class good good(const good & str){}用一个已存在的对象生成一个新对象用拷贝构造函数赋值运算符重载函数 good& operator=(const good & str){},其中返回值类型为good &...
2018-11-07 17:08:23
114
原创 namespace
c语言作用域有:全局作用域,局部作用域c++作用域有:全局作用域,局部作用域,名字空间作用域,类作用域相同的名字空间系统会自动合并
2018-10-17 17:18:46
192
原创 new malloc
newint c=new int()//new后面加类型,在()内可以给c初始化,如果初始化为0可什么都不填delete c //释放空间c数组的newint *arr=new int[x] //mew 后面加类型再加数组的长度,但后面如果加括号如:int *a =new int10则只能0初始化括号内不能填入其他数据delete [] a //释放数组anew/delete ...
2018-10-17 11:02:33
132
原创 c++/c语言
const修饰的变量为常量const int a = 10;在编译期间将用到a的地方全部换成10const 修饰的全局变量为local符号,连接时不管local符号extren 修饰const 把local符号变为‘g’extren “c”为c++语法通过中间层可以在不修改c++源码的情况下实现c和c++相互调用c++编译器编译完成时会加入cplusplus这个宏,c语言没有这个宏i...
2018-10-17 10:54:21
153
原创 c语言内容
形参内存开辟,在默认情况下为调用方开辟形参内存,调用方释放形参内存函数指针:不可为内联函数,在运行的时候确定typedef void(*fun)()void fun1()fun fp;fp=&amp;fun()普通函数:为设为内联函数,在编译的时候确定...
2018-10-17 10:38:20
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅