- 博客(15)
- 收藏
- 关注
原创 Nginx之连接
connection简介 在Nginx中connection就是封装了TCP连接,其中包括连接的socket,读写事件。利用nginx封装的connection,方便的处理与连接相关的事情,比如,建立连接,发送与接收数据等。Nginx中http请求的处理就是建立在connection上,所以Nginx不仅可以作为一个web服务器,也可以是邮件服务器。我们可以用connection与...
2019-07-26 19:13:23 1322
翻译 初窥Nginx(上)
简介Nginx是一款轻量级Web服务器/反向代理服务器及电子邮件代理服务器,并在BSD-like协议下发行。由俄罗斯程序设计师lgorSysoev所开发,供俄国大型的入口网站及搜索引擎使用,其特点是占有内存少,并发能力强,在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:新浪、网易、腾讯、小米官网等。架构我们可以看到,Nginx是以多进程的方式工作,当然Nginx也是支持多...
2019-07-24 21:12:35 128
原创 同步异步与阻塞非阻塞
同步和异步同步和异步关注的是消息通信机制同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知来通知调用者,或通过回调函数处理这个调用。...
2019-07-22 22:02:26 147
原创 浅析函数堆栈调用的过程
浅析函数调用过程从汇编的角度出发内存布局汇编代码画图分析总结从汇编的角度出发int Add(int x,int y){ int sum = 0; sum = x + y; return sum;}int main (){ int a = 10; int b = 12; int ret = 0; ret = Add(a,b); ...
2019-07-21 16:54:32 318
原创 编译链接原理
C++编译链接原理预处理编译汇编链接目标文件符号符号表静态链接静态库动态链接共享库我们都知道把代码编程一个可执行程序需要预处理,编译,汇编,链接预处理可以通过gcc预处理,如下:gcc -E main.c main.i 生成一个后缀为*.i的文件预处理过程进行的操作:将所有的“#define”删除,并且展开所有的宏定义处理所有的条件编译指令,比如...
2019-03-05 23:17:24 527
原创 内核空间内存管理
内核空间内存管理页:内核中内存管理的基本单位区:内核把页划分在不同的区如何分配和释放内存页分配与释放以字节为单位的分配与释放伙伴系统slab分配器slab分配器有以下三个基本目标:栈的静态分配高端内存的映射页:内核中内存管理的基本单位尽管处理器的最小可寻址单位通常为字或字节,但内存管理单元(MMU),把虚拟地址转换为物理地址的硬件设备)通常以页为单位处理。内核用struct page结构体表示...
2019-01-22 14:11:58 400
原创 C++虚继承和虚函数
C++虚继承深入解析基类和派生类的指向内存布局C++的虚函数常常搞得人晕头转向,很多同学常常混淆不清,今天我们来解析C++的虚函数基类和派生类的指向我们来看这样一段代码#include<iostream>using namespace std;class Base{public: Base(int a):ma() {cout << "Base:Basee...
2019-01-19 19:49:49 484
原创 实现可变参数
首先分析printf()函数,打开函数声明 出现一堆辣眼睛的代码,经简化如:#include<stdarg.h>//主要目的为让函数能够接收可变参数printf(char const* const n, ...){ int n; char p;//#define va_list char* 类型为字符指针 va_start(p, _Format); ...
2018-03-23 23:58:11 181
原创 浅析位运算
按位运算符位操作符 & | ^ 将数变为二进制操作与操作符&若两个位上都是1,结果为1,否则为0 例: 1011 1001 得 1001 或操作符* 若两个位上都是0,结果为0,否则为1 例: 1011 1001 得 1011 异操作符 若两个位上不同,结果为1, 若两个位上相同,结果为0...
2018-03-20 23:50:19 163
原创 浅析自定义struct 结构体
定义结构体及访问其中元素例:struct Student //标识符整体使用{ char[20] name; //成员变量 int Num;}; //注意:分号不可省略只要设计好,就等同内置类型 1. 哪些类型可以在结构体内部? 不可定义自己为普通变量,不能计算内存 内置类型,在使用前已经定义好的自定义类型,定义指向自己的指针 (内存大...
2018-03-09 17:08:45 528
原创 浅析全局变量与局部变量
全局变量:定义在函数外部的变量。禁止使用 局部变量:定义在函数内部的变量,包含形参 extern:引用外部符号(变量,函数)
2017-12-12 09:34:59 191
原创 浅析字符数组
在C语言中有两种方式初始化字符数组char arr[] = "hello";char brr[] = {'h','e','l','l','o','\0'};其实两种方式是有区别的,因为字符串默认是以’\0’结束的, 字符串大小都是一样的 第一种方法系统默认添加’\0’, 第二种方法要多输出一个’\0’;字符串不可以直接使用”=”初始化 使用 strcpy 数组复制 strcat 数组相
2017-12-05 08:14:48 185
原创 浅析指针
指针==地址 & 为取地址符 如&a ; int p; 定义整型指针变量, 其一般形式为: 类型说明符 变量名; 注意:一个指针变量只能指向同类型的变量 *为间接访问符或解引用 *功能: 1.定义指针 2.解引用 3.乘法 指针赋值 int *p=&a;或int *p; p=&a; 指针在X86或32位平台4字节 指针
2017-11-27 14:16:24 125
原创 基础进制
唔...之前的课没上 每次老师讲二进制我好懵* 利用周末看一下补回来十进制 0~9123.45 = 1*10^2+2*10^1+3*10^0+4*10^-1+5*10^-2那么二进制也如此理解就好二进制 0~1 1011.1 = 2^3+2^1+2^0+2^-1 =11.5每位权重分别为 1 2 4 8 16 32 64 128sizeof(int) = 4 byte
2017-11-27 13:41:41 270
原创 C语言N进制推导
假如在n进制下,下面等式成立,567*456=15016,n值为()A.9B.10 C.12D.18先按n进制将等式化为(5n^2+6n+7)*(4n^2+5n+6)合并同类项为 20n^4+49n^3+88n^2+71n+42 = n^5+5n^4+2n^2+n+6两边同时%n 得 42%n = 6 (1) 由此处仅可排除B项两边先除以n再对n取余
2017-11-21 09:46:06 465
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人