linux学习笔记-makefile的写法

2019-06-20
阅读 11 分钟
7.3k
一个项目,拥有成百上千的源程序文件,那如何组织这些源码文件的编译和链接呢?此时就需要确定整个工程的编译链接规则,Makefile就是用来指定规则的。而make是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。

网络云盘项目-nginx添加fastdfs-模块

2019-06-07
阅读 3 分钟
2.4k
解压 fastdfs-nginx-module-1.20 进入Nginx安装目录 重新配置安装包,添加fastdfs源码目录 {代码...} make 报错 解决方案: {代码...} 修改 obj/makefile,添加找到的路径 {代码...} 启动 nginx {代码...} 发现worker 进程未启动查看日志 {代码...} 缺少配置文件 ,找到拷贝到目录下 {代码...} 修改 mod_fastdfs.conf 配...

网络云盘项目-fastCGI和spawn-fcgi的安装

2019-06-07
阅读 1 分钟
2.7k
准备安装包 {代码...} 解压 {代码...} 安装 fcgi {代码...} make出错: 解决方案: 找到fcgio.h 或fcgio.cpp文件添加: {代码...} 继续: {代码...} 安装spawn-fcgi {代码...} 报错 {代码...} {代码...} {代码...} 又报错。。。算了不折腾了重新下个 {代码...} 一气呵成~!

redis安装笔记

2019-06-05
阅读 1 分钟
1.6k
下载源码 {代码...} 解压: {代码...} 编译安装: {代码...} 安装完成: {代码...} {代码...} {代码...} 关闭连接

网络云盘项目-fastdfs环境搭建

2019-06-05
阅读 5 分钟
2.4k
预备工具包:1.libfastcommon-1.0.38.tar.gz2.fastdfs-5.11.tar.gz3.fastdfs-nginx-module-1.20.tar.gz4.libevent-2.1.8-stable.tar.gz

tcp协议 拥塞控制

2019-06-02
阅读 3 分钟
2.9k
补充tcp协议与滑动窗口我们在向对端发送数据时,并不是一股脑子任意发送,因为TCP建立连接后,就是建立了一根管道,这跟管道上,实际上有很多的工作设备,比如路由器和交换机等等,他们都会对接收到的TCP包进行缓存,以便实现排序,然后发送,但是这些设备并不是只为一个TCP连接中转数据包,大量的网络包也许会耗尽存储...

tcp 长连接与短连接

2019-06-02
阅读 2 分钟
5.8k
使用TCP协议时,会在客户端和服务器之间建立一条虚拟的信道,这条虚拟信道就是指连接,而建议这条连接需要3次握手,拆毁这条连接需要4次挥手,可见,我们建立这条连接是有成本的,这个成本就是效率成本,简单点说就是时间成本,你要想发送一段数据,必须先3次握手(来往3个包),然后才能发送数据,发送完了,你需要4次...

UDP协议

2019-06-02
阅读 4 分钟
2.8k
检验和:在进行检验和计算时,会添加一个伪首部一起进行运算。伪首部(占用12个字节)为:4个字节的源IP地址、4个字节的目的IP地址、1个字节的0、一个字节的数字17、以及占用2个字节UDP长度。这个伪首部不是报文的真正首部,只是引入为了计算校验和。相对于IP协议的只计算首部,UDP检验和会把首部和数据一起进行校验。接...

linux 网络编程 socket选项

2019-06-01
阅读 7 分钟
4.5k
socket选项函数 功能:用来读取和设置socket文件描述符属性的方法 {代码...} socket选项表如下: getsockopt和setsockopt 这两个函数成功时返回0,失败时返回-1并设置errno。 对于服务器而言,有部分socket选项只能在调用listen系统调用前针对监听socket设置才有效。这是因为连接socket只能由accept调用返回,而accept从...

linux socket编程-socket接口

2019-06-01
阅读 8 分钟
9.2k
Windows 和 Linux 上常用的 socket API 函数并不多,除了特定操作系统提供的一些基于自身系统特性的 API, 大多数 Socket API 都源于BSD Socket (即伯克利套接字(Berkeley Sockets)),因此这些 socket 函数在不同的平台有着相似的签名和参数。

linux 进程间通信 学习笔记

2019-05-30
阅读 22 分钟
2.5k
IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。

linux 进程学习笔记

2019-05-28
阅读 12 分钟
2.2k
在Linux中task_struct结构体即是PCB。PCB是进程的唯一标识,PCB由链表实现(为了动态插入和删除)。进程创建时,为该进程生成一个PCB;进程终止时,回收PCB。PCB包含信息:1、进程状态(state);2、进程标识信息(uid、gid);3、定时器(time);4、用户可见寄存器、控制状态寄存器、栈指针等(tss)每个进程都有一个...

设计模式 第三周学习笔记

2018-01-06
阅读 11 分钟
1.2k
对象创建模式 通过对象创建模式绕开new,来避免对象创建过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。 典型模式 Factory MethodAbstract FactoryPrototypeBuilder Factory Method {代码...} {代码...} 工厂模式 {代码...} 通过抽象类和抽象工厂将具体的对象创建工作延迟...

设计模式 第二周学习笔记

2018-01-02
阅读 4 分钟
1.6k
面向对象很好地解决了抽象的问题,但是不可避免的要付出一定的代价,对于通常情况来讲,面向对象的成本大多可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理。

设计模式 第一周学习笔记

2017-12-31
阅读 20 分钟
1.2k
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

STL 第五周学习笔记

2017-12-23
阅读 3 分钟
1.6k
以HashTable为底层的容器(如unordered_map),在使用过程中,必须要有一个hash function来为每一个元素生成一个hash code作为元素在哈希表中的key,也就是元素在哈希表中的具体位置。对于一些build-in类型(比如字符串),标准库自带hash function,对于自定义类型来说,这个函数该如何定义?我们能否找到一个通用的方...

STL 第四周学习笔记

2017-12-14
阅读 4 分钟
1.7k
Algorithm 迭代器分类 迭代器类型对算法的影响 仿函数 STL各部分关系 容器通过内存分配器分配空间;容器和算法因为迭代器而分离,算法通过迭代器访问容器;仿函数协助算法指定不同的策略;适配器套接仿函数。仿函数将某种"行为"作为算法的参数传给算法。 仿函数适配器(Function Adapter) binder1st 给定一个vector,其...

STL 第三周学习笔记

2017-12-08
阅读 3 分钟
1.6k
deque是一种分段连续的容器,特点是双向开口,使用起来可以认为它是一段连续的内存空间,不仅可以向前方增加内存空间,也可以向后方增加内存空间。 deque 模拟连续内存的实现方法:

STL 第二周学习笔记

2017-11-30
阅读 4 分钟
1.5k
OOP企图将datas和methods关联在一起,GP则是将datas和methods区分开。使用全局sort必须提供RandomAccessIterator。

STL 第一周学习笔记

2017-11-25
阅读 2 分钟
1.8k
容器是用来存储数据的,数据可以试用户自定义的类,也可以试预定义的类型。C++中的容器主要使用有array、vector、list、set、map等。

c++面向对象高级编程 第五周学习笔记

2017-11-16
阅读 1 分钟
1.7k
对象在内存中存在一个虚函数指针,其一般存在于数据成员之前,虚函数指针指向虚函数表,在虚函数表中按照函数声明顺序存储着虚函数的地址。可以用(*(p->vptr)[n])(p);或者(*p->vptr[n])(p);访问。

c++面向对象高级编程 作业3

2017-11-15
阅读 3 分钟
2.1k
为上周题目中的 Fruit和Apple 添加 构造函数与 析构函数, 并在构造函数与析构函数中打印控制台信息,观察构造和析枸调用过程。然后为Apple类重载::operator new和 ::operator delete,在控制台打印信息,并观察调用结果。因为题目比较简单,不多说直接上代码

c++面向对象高级编程 作业2

2017-11-08
阅读 3 分钟
1.4k
题目描述:1. 分别给出下面的类型Fruit和Apple的类型大小(即对象size),并通过画出二者对象模型图以及你的测试来解释该size的构成原因。

c++面向对象高级编程 第四周学习笔记

2017-10-31
阅读 2 分钟
1.5k
在上文中 复合表示的关系为has-aqueue中的内容全部由deque来实现由于复合表示的是一个has-a的关系,所以其大小为其内部各部分之和。

c++ 面向对象高级编程 第三周学习笔记

2017-10-30
阅读 4 分钟
1.9k
目标&内容 泛型编程 Template深入探索面向对象编程继承关系下的对象模型 this指针 vptr虚指针 vtbl虚表 virtual mechanism 虚机制 虚函数引起的polymorphism 多态 conversion function {代码...} note:上面的double转换函数没有return type。 no-explicit-one-argument ctor {代码...} 将调用no-explicit-one-argume...

c++面向对象高级编程 第二周学习笔记

2017-10-18
阅读 2 分钟
1.8k
三个基本操作可以控制类的拷贝操作:拷贝构造函数、拷贝赋值运算符和析构函数。新标准下一个类还可以定义一个移动构造函数和一个移动赋值运算符。带指针的类必须有拷贝构造函数和拷贝赋值运算符,使用默认形式会发生错误

c++面向对象高级编程 作业1

2017-10-10
阅读 4 分钟
1.1k
问题描述 为Date类实现如下成员: 构造器,可以初始化年、月、日。 大于、小于、等于(> 、< 、==)操作符重载,进行日期比较。 print() 打印出类似 2015-10-1 这样的格式。 然后创建两个全局函数: 第1个函数 CreatePoints生成10个随机的Date,并以数组形式返回; 第2个函数 Sort 对第1个函数CreatePoints生成的...

c++面向对象高级编程 第一周学习笔记

2017-10-10
阅读 1 分钟
1.8k
基于对象 Object based:面对单一class的设计面向对象 Object oriented:面对多重classes之间的设计,classes与classes之间的关系。classes两个经典分类:有指针vs无指针