自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python 笔记1 | Python基础

python 笔记1

2021-04-29 23:24:13 172

原创 Linux 项目开发 | WEB服务器开发

项目开发

2021-04-27 23:59:36 754

原创 Linux网络编程笔记9 | 多线程

十四、多线程1.什么是线程?源代码 -编译和链接-> 程序 -加载到内存中-> 进程| |文件 内存/ 代码 <- 执行数据 <- 处理| | <- CPU静态 动态| |资源 线程线程就是进程的执行过程,即进程内部的控制序列,或者说是进程中的一个任务。一个进程可以

2021-04-24 22:32:37 262

原创 Linux 网络编程笔记8 | 网络通信

十三、网络通信1.网络和网络协议1)什么是计算机网络?计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过有形或无形的通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2)什么是网络协议?网络协议是一种特殊的软件,是计算机网络实现其功能的最基本的机制。网路协议的本质就是规则,即各种硬件和软件必须遵循的共同守则。网络协议并不是一套单独的软件,它融合于所有涉及网络通信的软件甚至硬件之中,因此可以说协议于网络中无处不在。

2021-04-21 23:22:34 287 2

原创 Linux 网络编程笔记7 | 进程间通信

十二、进程间通信1.什么是进程间通信Unix/Linux系统中每个进程都拥有独立的4G字节大小的虚拟内存空间。其中高地址的1G字节被映射到相同的物理内存区域,用于保存内核代码和数据。低地址的3G字节作为保存用户代码和数据的用户空间,被映射到彼此不同物理内存。因此同一个虚拟内存地址,在不同的进程中,会被映射到不同的物理内存区域,在多个进程之间以交换虚拟内存地址的方式交换数据是不可能的。鉴于进程之间天然的内存壁垒,为了能够在不同进程之间高效地交换数据,需要有一种专门的机制,这就是所谓的进程间通信(Inter

2021-04-19 01:24:56 253

原创 Linux网络编程笔记6 | 信号

十一、信号1.基本概念1)什么是信号?事件(信号)过程(进程)1---------v--------->/ /事件过程(进程)2 /—v---/ / 过程(进程)3 /— ---信号是提供异步事件处理机制的软件中断。这些异步事件可能来自硬件设备,也可能来自系统内核,甚至可能来自用户程序。进程之间可以相互发送信号,这使信号成为一种进程间通信(Inter-Process Communication, IPC)的基本手段。信号的异步特性不仅

2021-04-17 01:11:49 220

原创 LInux 网络编程笔记5 | 进程

十、进程1.进程的基本概念程序:磁盘上的可执行文件。| 加载v进程:内存中的指令和数据。执行 | ^v | 访问CPU—+2.进程的分类交互式进程:由Shell启动,借助标准I/O与用户交互。批处理进程:在无需人工干预的条件下,自动运行一组批量任务。守护(精灵)进程:后台服务,多数时候处于待命状态,一旦有需要可被激活完成特定的任务。3.进程快照ps - 显示当前用户拥有控制终端的进程信息ps axuw - BSD风格选项a: 所有用户x: 既包括

2021-04-12 23:04:19 232

原创 C语言 数据结构笔记1 | 单链表

一、链表的由来数组是最简单的数据结构,链表复杂一些,二叉树、图则更加复杂的数据结构。数据结构由简单到复杂,它们所要解决的问题也是由简单到复杂。要学习复杂的数据结构就要先学习简单的数据结构,如果简单的数据结构可以解决问题,就没必要使用复杂的数据结构。数组天生的缺陷导致的它解决不了某些问题,所以人们发明了链表。数组的三个特点:一:数组中所有的元素类型必须相同;二:数组在定义的时候需要明确指定数组元素的个数,并且一般来说个数是不能改变的(Linux内核中会使用变长数组,在高级语言如C++当中也支持变成数组

2021-04-10 16:45:29 239

原创 LInux 网络编程笔记4 | 文件

九、文件1、文件系统的物理结构1)硬盘的物理结构:驱动臂、盘片、主轴、磁头、控制器2)磁表面存储器的读写原理硬盘片的表面覆盖着薄薄的磁性涂层,涂层中含有无数微小的磁性颗粒,谓之磁畴。相邻的若干磁畴组成一个磁性存储元,以其剩磁的极性表示二进制数字0和1。为磁头的写线圈中施加脉冲电流,可把一位二进制数组转换为磁性存储元的剩磁极性。利用磁电变换,通过磁头的读线圈,可将磁性存储元的剩磁极性转换为相应的电信号,表示二进制数。3)磁道和扇区磁盘旋转,磁头固定,每个磁头都会在盘片表面画出一个圆形轨迹。改变磁头

2021-04-10 15:27:39 235

原创 C++ 笔记7 |操作符重载

二十 操作符重载(operator)1 双目操作符重载 L#R1.1 计算类双目操作符: + - …1)表达式结果是右值,不能对表达式结果再赋值2)左右操作数既可以是左值也可以是右值3)两种具体实现方式–》成员函数形式(左调右参)L#R的表达式可以被编译器处理为"L.operator#®"成员函数调用形式,该函数的返回就是表达式结果。–》全局函数形式(左右都参)L#R的表达式可以被编译器处理为"operator#(L,R)"全局函数调用形式,该函数的返回就是表达式结果。注:通过frien

2021-04-10 14:59:34 224

原创 C++ 笔记6 | 静态成员 成员指针

十八 静态成员(static)1 静态成员变量1)语法class 类名{static 数据类型 变量名;//声明};数据类型 类名::变量名 = 初值;//定义和初始化2)普通成员变量属于对象,而静态成员变量不属于对象,静态变量内存在全局区,可以把静态变量理解为被限制在类中使用的全局变量.3)普通成员变量在对象构造时定义和初始化,而静态成员变量在类的外部单独定义和初始化。4)使用方法类名::静态成员变量;//推荐对象.静态成员变量;//和上面等价2 静态成员函数1)语法class

2021-04-10 14:55:59 885

原创 C++ 笔记5 | this指针 析构函数 拷贝构造和拷贝赋值

十五 this指针和常成员函数1 this指针1)类中的成员函数(包括构造函数、析构函数)都有一个隐藏的当前类类类型的指针参数,名为this。在成员函数中访问类中其它成员,其本质都是通过this来实现的。2)对于普通的成员函数,this指针就是指向该成员函数的调用对象;对于构造函数,this指针就指向正在创建的对象。3)大多数情况,可以忽略this直接访问类中的成员,但是在以下几个特殊场景必须要显式使用this指针:–》区分作用域–》从成员函数返回调用对象自身(返回自引用)//重点掌握–》从类

2021-04-10 14:53:16 276

原创 C++ 笔记4 | 构造函数和初始化列表

十四 、构造函数和初始化列表1 构造函数可以重载,也可以带有缺省参数//匹配string的无参构造函数string s;//匹配string的有参(const char*)构造函数 string s("hello");---------------------------------http://www.cplusplus.com/2 缺省构造函数(无参构造函数)1)如果类中没有定义任何构造函数,编译器会为该类提供一个缺省(无参)构造函数:–》对于基本类型成员变量不做初始化

2021-04-10 14:49:21 213

原创 栈空间为什么会满?

一、第一种解释栈空间是预设的,它通常用于存放临时变量,如果你在函数内部定义一个局部变量,空间超出了设置的栈空间大小,就会溢出。不仅如此,如果函数嵌套太多,也会发生栈溢出,因为函数没有结束前,函数占用的变量也不被释放,占用了栈空间。二、第二种解释对每个程序来说,栈能使用的内存是有限的,一般是 1M~8M,这在编译时就已经决定了,程序运行期间不能再改变。如果程序使用的栈内存超出最大值,就会发生栈溢出(Stack Overflow)错误,程序就崩溃了。这个就像木桶里的水,木桶的容量有限,水满了自然会溢出

2021-04-08 23:30:36 2106

原创 C++ 笔记3 | 显示类型转换 类 对象 类的定义和实例化

十 C++引用(Reference)1 定义1)引用即别名,引用就是某个变量别名,对引用操作和对变量本身完全相同.2)语法类型 & 引用名 = 变量名;注:引用必须在定义同时初始化,而且在初始化以后所绑定的目标变量不能再做修改.注:引用类型和绑定目标变量类型要一致。2 常引用1)定义引用时可以加const修饰,即为常引用,不能通过常引用修改目标变量.const 类型 & 引用名 = 变量名;类型 const & 引用名 = 变量名;//和上面等价2)普通引用也可

2021-04-08 22:55:47 260

原创 Linux 网络编程笔记3 | 内存 系统调用

八、系统调用应用程序--------------+vi/emacs/gftp/firefox || |标准库、第三方库 |C/C++/Qt/X11 || |系统调用<------------+brk/sbrk/mmap/munmap1.Linux系统内核提供了一套用于实现各种系统功能的子程序,谓之系统调

2021-04-07 19:27:47 301 1

原创 C++ 笔记2 | 重载与缺省参数 内联 动态内存分配 引用

八、 C++的函数1、函数重载(overload)1)定义在相同作用域,可以定义同名的函数,但是参数必须有所区分,这样函数构成重载关系.注:函数重载和返回类型无关。eg:实现图形库中一些绘图函数//C语言 void drawRect(int x,int y,int w,int h){} void drawCircle(int x,int y,int r){} ... -----------------//C++语言 void draw(int x,int y,int w,int h)

2021-04-04 21:21:50 166

原创 C++ 笔记1 | 第一个C++程序 结构体 联合 枚举 string、bool类型

一、第一个C++程序#include<iostream>int main(void){ std::cout << "hello word!" <<endl; return 0;}1、编译方式1)gcc xx.cpp -lstdc++2)g++ xx.cpp //推荐2、文件扩展名1).cpp //推荐2).cc3).C4).cxx3、头文件#include –》C++中和I/O相关的类型、对象、函数都在在头文件中–》C++中大多数头

2021-04-04 20:10:46 561

空空如也

空空如也

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

TA关注的人

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