自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 计算机网络

计算机网络OSI七层模型 TCPIP五层模型OSI: 物理层 数据链路层 网络层 运输层 应用层 会话层 表示层TCPIP: 物理层 数据链路层 网络层 运输层 应用层物理层:该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。主要设备:中继器(放大器)、集线器数据链路层:最主要的工作是把网络层的数据可靠的传输到目的节点的网络层数据链路层工作内容:物理寻址、组帧、流量控制、数据检错和重发。

2020-09-25 01:34:03 208

原创 C++ static关键字

static关键字作用隐藏,保持变量内容的持久性,默认初始化为0static修饰局部变量static int a ; a默认初始化为0void aa( int){ static int a;}限定了a的作用域在函数aa内部,函数外部不能看到a,a只初始化一次。下次调用aa函数,a的值会继承上次函数运行的结果。static修饰全局变量全局变量在其他文件内也是可见的,加上了static后,变量只在当前文件可见。static修饰函数static修饰函数,函数在当前文件可见,不会同其他文件

2020-09-19 10:52:42 127

原创 C++ const关键字 指针和多维数组

C++const指针常量和常量指针顶层const :指针本身是个常量, 一般对应常量指针int i = 0;int *const p1 = &i; 顶层const底层const:指针所指的对象是个常量,一般对应指针常量const int ci = 42; 顶层constconst int *p2 = &c1;(允许改变P2的值)...

2020-09-16 10:36:58 213

原创 操作系统 实现简单shell程序 sh3.增加管道功能

操作系统 实现简单shell程序 sh3.c在sh2基础上加管道功能只实现了单个管道,改善了在sh2实现的字符串切割函数功能和要求实现shell程序使用fork/exec/wait系统调用实现mysys实现文件重定向实现管道,只要求连接两个命令,不要求连接多个命令,不要求同时处理管道和重定向实现思路1.输入一行字符串2.调用parse_command把字符串根据管道符号进行简单分割简单分割后的token再调用parse_command_s进行完整分割分割后的字符串保存到struct

2020-07-09 00:54:20 1711

原创 操作系统 实现简单shell程序 sh2.c

sh2.c: 实现shell程序,要求在第1版的基础上,添加如下功能• 实现文件重定向• $ echo hello >log• $ cat log• Hello这还有一点点小问题,输入要求:重定向输入在重定向输出前面实现思路1.输入一行字符串2.调用parse_command把字符串根据'>'、'<'和' '分割 分割后的字符串保存到struct command【】中3.根据input和output判断是否有文件的重定向- 如果没有,执行mys

2020-07-09 00:36:25 1576

转载 TCP和UDP报头结构

TCP报头源端口和目的端口:各占2个字节。2.序号:占4字节。序号范围是0~2^32-1。TCP是面向字节流的,TCP连接中传送的字节流中的每个字节都按顺序编号。整个要传送的字节流的起始序号必须要在连接建立时设置。首部中的序号字段值指的是本报文段所发送的数据的第一个字节的序号。3.确认号:4个字节,是期望收到对方下一个报文段的第一个数据字节的序号。若确认号=N,则表明:到序号N-1为止的所有数据都已正确收到。4.数据偏移:4位。指出TCP报文段的数据起始处距离报文段的起始处有多远。这个字段实际上

2020-06-16 17:40:35 1253

原创 常用的排序算法

#include<stdio.h>#include<stdlib.h>void bubble_sort(int arry[], int len){ int i,j,temp; for(i=0;i<len-1;i++) { for(j=0;j<len-1-i;j++) { if(arry[j]>arry[j+1]) { temp=arry[j+1]; arry[j+1]=arry[j];

2020-06-11 21:37:32 91

转载 指针函数和函数指针

1.指针函数它的本质是一个函数,不过它的返回值是一个指针。

2020-06-07 16:04:09 100

转载 strlen和sizeof的区别以及计算盲区

strlen 和sizeof1.sizeof是算符,strlen是函数2.sizeof其值在编译时即计算好了,strlen的结果要在运行的时候才能计算出来,时用来计算字符串的长度,sizeof则是类型占内存的大小 strlen是库函数,在头文件string.h里面。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。 sizeof是运算符,在头文件中typedef为unsigned int,其值在编译时即 计算好了,参数可以是数组、指针、类型、对象、函数等。

2020-06-07 15:40:42 303

转载 内存泄漏、内存溢出、内存越界、段错误、堆溢出、栈溢出

内存泄露内存泄漏(memory leak)是应用程序分配某段内存后,由于疏忽或者错误,失去了对该段内存的控制,因而造成了内存的浪费。或者可以说向系统申请分配内存进行使用(new),但是用完后不归还(delete),导致占用有效内存。简而言之:调用了malloc/new等申请内存的操作,但是缺少了对应的free/delete操作。内存溢出内存溢出就是要求分配的内存超出了系统所给的。要求的超出分配的。主要有:堆溢出、 栈溢出、内存永久保护区溢出内存溢出原因:(1)内存中加载的数据量过于庞大,

2020-05-27 22:14:41 2495

原创 C++ 指针和引用的区别

1.引用不可以为空,但指针可以为空引用:定义一个引用的时候,必须初始化。因为是引用对象,对象不能为空。指针:指针可以为空,定义一个空指针是合法的。引用不可能为空,所以不用判断;指针需要先判断是否为空指针,影响效率。2.一旦引用被初始化,就不能改变引用的对象,指针则可以随时改变所指的对象引用只能在初始化的时候就赋好值,之后就不能改变了。指针可以多次改变所指向的地址。3.开销不同引用:创建和销毁不会调用类的拷贝构造函数和析构函数。指针:指针:C++创建和释放对象通过运算符new 和delet

2020-05-27 21:09:19 473

转载 C++ new malloc区别

C++ new malloc区别1. malloc()函数malloc的全称是memory allocation,中文叫动态内存分配。与free函数配套使用;申请了内存空间后,必须检查是否分配成功。当不需要再使用申请的内存时,记得释放;malloc从堆里面获得空间2.new()函数用new和delete动态创建和释放数组或单个对象;3. malloc和new的区别3.1 ...

2020-03-30 21:21:03 103

数据库mysql复习笔记大全.txt

数据库 mysql复习笔记大全,基本语法,常见例子,实践操作全部包括在内。适合数据库mysql入门新手以及期末复习。

2020-05-30

空空如也

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

TA关注的人

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