自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 进程产生死锁的四个必要条件

转自:https://blog.csdn.net/jyy305/article/details/70077042 死锁产生的四个必要条件 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到...

2018-08-10 10:34:45 1428 0

原创 C语言知识点

1.C语言之父是丹尼斯·里奇,他不仅是C语言之父还是UNIX之父;   2.C语言的三个特点(为什么嵌入式的开发选择C语言为开发语言) (1)运行的效率高:C语言的目标代码效率一般只比汇编程序低10%~20%,因此在同类的语言中,C语言具有生成目标代码质量高、程序执行的效率高的优点。 (2)...

2018-08-09 21:18:28 136 0

原创 C++语法学习(8)

1.序列式容器(Sequence containers)       每个元素都有固定位置--取决于插入时机和地点,和元素值无关。       vector、deque、list   关联式容器(Associated containers)       元素位置取决于特定的排序准则,和插入顺序无关...

2018-08-08 16:01:19 47 0

转载 关于TCP三次握手

TCP:SYN ACK FIN RST PSH URG简析   三次握手Three-way Handshake    一个虚拟连接的建立是通过三次握手来实现的  1. (B) --> [SYN] --> (A)    假如服务器A和客户机B通讯. 当A要和...

2018-08-04 14:25:53 118 0

原创 含有虚函数,虚继承的类的大小

当类中含有虚继承时(在vs环境下,linux环境下有歧义) 1. 派生类对象中会添加一个指针,该指针指向虚继承的基类,称为虚类指针(cPtr)。每一个指针只指向其中一个虚继承的类,也就是说,虚继承了几个类,就会有几个cPtr。     2. 父类当中的成员变量、虚函数指针(vPtr)、虚类指针...

2018-08-02 14:55:24 177 0

原创 C++语法学习(7)

1.函数模板 函数模板由模板说明和函数定义构成 模板说明的类属参数至少在函数定义中出现一次 函数参数表中可以使用类属类型参数,也可以使用普通类型 2.函数模板不允许自动类型转化 普通函数能够进行自动类型转换 3.当函数模板遇到普通函数 1 函数模板可以像普通函数一样被重载   2 C+...

2018-08-01 19:32:51 53 0

原创 C++语法学习(6)

1.函数重写 在子类中定义与父类中原型相同的函数 函数重写只发生在父类与子类之间 重载与重写区别: 重载:同一个作用域;       子类无法重载父类函数,父类同名函数将被覆盖;       重载是在编译期间根据参数类型和个数决定; 重写:发生于父类、子类之间;       父类和子类函数有相同...

2018-07-30 19:45:26 78 0

原创 C++基础语法学习(5)

1.继承应用的场景 1) 当你创建的新类与现有的类相似,只是多出若干成员变量或成员函数时,可以使用继承,这样不但会减少代码量,而且新类会拥有基类的所有功能。   2) 当你需要创建多个类,它们拥有很多相似的成员变量或成员函数时,也可以使用继承。可以将这些类的共同成员提取出来,定义为基类,然后从基...

2018-07-29 09:39:34 64 0

原创 面试题笔记(五)

1.进程的内存空间有一块是专门用于NULL指针分配的分区,这个分区的地址空间是禁止进入的,因此就会发生内存访问违规现象,同时该进程将终止运行 2.对于类成员函数,并不是一个对象单独对应一个成员函数体,而是此类的所有对象公用这个成员函数体,当成员被编译后,该成员函数的地址即被确定,我们在调用类成员...

2018-07-29 09:06:37 54 0

原创 C++基础语法学习(4)

1. 如果能作为左值则返回引用,例如a+b不能作为左值,a=b可作为左值,a++不能作为左值,其返回一个值,是常量,++a可作为左指,返回a这个变量 2.当无法修改左操作数的类时,使用全局变量进行重载,如<<和>>,因为无法修改ostrea...

2018-07-27 10:58:22 86 0

原创 关于有些运算符只能用成员函数重载

1.=,[],(),->只能通过成员函数来重载 C++规定赋值运算符“=”只能重载为类的非静态成员函数,而不可以重载为类的友元函数。 不能重载为类的静态成员应该比较容易理解,因为静态成员函数是属于整个类的,不是属于某个对象的,它只能去操作类静态数据成员。而赋值运算符“=”是基于对象...

2018-07-27 10:12:16 10241 5

原创 面试题笔记(四)0

1. 在主函数中会优先调用局部变量value,若没有才会调用全局变量,而函数printvalue()打印的是全局变,若无   全局变量则会编译报错 2.i++与++i的效率问题 内建数据类型的情况,效率没有区别 自定义数据类型的情况,++i效率更高,因为前缀式可以返回对象的引用,而后缀...

2018-07-25 21:11:11 100 0

原创 C++基础语法学习(3)

1.对象初始化列表:当成员变量是一个对象,且该对象没有无参构造函数 1.必须这样做: 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数。这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数, 如果没有初始化列表,那么他将...

2018-07-24 21:08:03 65 0

原创 C++基础语法学习(2)

1.面向对象语言开发效率高,运行效率下降百分之十左右 2.private 私有,类内部调用    protected 受保护(用于继承)    public 公有,内外都可以调用 3.class中默认是私有权限   struct 中默认是公有的 4.constructor 构造函数 ...

2018-07-23 17:10:17 52 0

原创 面试题笔记(三)

1.链队(队列) 先进先出,允许插入的一端为队尾,允许删除的一端为队头   2. 数据的逻辑结构分为线性结构和非线性结构。 线性结构:一对一关系 非线性: 树形结构:一对多关系 图形或网状结构:多对多关系 集合:结构中的数据元素之间除了“同属于一集合”的关系外,别无其他关...

2018-07-23 16:38:59 86 0

原创 面试题笔记(二)

1.转义字符 【解释】首先要明确该字符串中包含的转义字符,”a \b re \’ hi \' y \\ \b ou \n”中的转义 字符(带下划线的部分)共有6个,其中’\b’是退格符,输出时将光标往左边回退一个位置, ‘\’’为单引号字符,’\\’为\字符,’\n’为回车换行...

2018-07-21 09:01:49 74 0

原创 面试题笔记(一)

1.关于求质因数的程序 如20=2*2*5   2. 2 3 4 unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x801000; p2=(un...

2018-07-20 09:45:33 203 0

原创 char*与char[ ] 的区别

看上图程序,调用returnstr()时可以打印出abc,但是调用returnstr1()时不能打印出来且编译时候警告该函数返回了局部变量的地址 char*p = "abc"; 这里的p指向了一个字符串常量,该常量是存储在静态存储区的,所以其内容是不可改变的,但是p指针...

2018-07-20 09:38:07 49 0

原创 关于函数返回局部变量

一般的来说,函数是可以返回局部变量的。 局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,...

2018-07-19 17:29:26 49 0

原创 C++基础语法学习1

1.命名空间 namespace  为什么要使用命名空间:一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。 ::作用域限定符 用来限定变量的所属域   2.c...

2018-07-19 10:28:08 70 0

原创 C语言网络聊天室程序

共分为四部分,服务器两个,客户端两个 1.my_sever.c //******************************************************// //鐢熸垚鏃ユ湡 2017骞?2鏈?4鏃?  浣滆€?闄堝浆   // //璇ユ枃浠朵负鑱婂ぉ瀹ゆ湇鍔″櫒涓荤▼...

2018-07-17 16:37:11 1526 1

原创 C语言聊天室项目说明书

网络聊天室项目说明 项目的目的和意义 该聊天室项目为利用linux下C语言网络编程相关知识,采用Server/Client,即服务器与客户端的基本框架实现。整个项目涉及了socket套接字,线程,嵌入式数据库sqlite3,select模型等多个知识模块,服务器整体采用select模型,并不断监...

2018-07-17 16:20:06 1784 1

转载 算法复杂度

算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量; 而空间复杂度是指执行这个算法所需要的内存空间。 (算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度)。简单来说,时间复杂...

2018-03-02 14:22:36 70 0

原创 笔试训练5

1.char* a, char* b;while(*b = *a){    a++;    b++;}作用是将a所指的字符串赋给b所指的空间,while(*b = *a)相当于while((*b = *a) != '\0'2.四层网络模型与七层网络模型OSI七层网络模型第一层 ...

2018-02-28 09:23:37 82 0

原创 笔试训练4

1.某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是多少可能会发生死锁的上限资源数,为每个进程均只差一个资源的情况,为9个,只要再加一个资源就不可能发生死锁了,所以不会发生死锁的最少资源数为10。2.内存相关关于内存正确的是A.内存的存取速度不能低于cpu速度,否则...

2018-02-28 08:38:41 162 0

原创 笔试训练3

1.静态链表中指针表示的是数组下标在某些语言中指针是不被支持的,只能使用数组来模拟线性链表的结构.在数组中每个元素不但保存了当前元素的值,还保存了一个”伪指针域”,一般是int类型,用于指向下一个元素的内存地址.这种链表在初始时必须分配足够的空间, 也就是空间大小是静态的, 在进行插入和删除时则不...

2018-02-27 16:32:42 73 0

原创 笔试训练2

1.ls -al各列的含义drwx------+  9 zyu  staff    306  8 19 21:15 Picturesdrwxr-xr-x+  6 zyu  staff    204  3 30 22:09 Public第一列:文件的类型与权限第一个字母代表文件类型:d目录,-文件,...

2018-02-26 14:44:13 65 0

原创 网络编程预习2

1.TCP与UDP的区别 TCP:传输控制协议,为应用程序提供可靠的通信连接,适合一次传输大批数据的情况,并 适用要求得到相应的应用程序 UDP:用户数据包协议,提供无线连接通信,且不对传诵包进行可靠的保证,适合一次传输少量数据 2.TCP协议的含义 TCP是TCP/IP体系中面向...

2017-12-06 16:09:53 90 1

原创 网络编程预习1

1.TCP/IP的几个重要特性 1.Connectionless Packet Delivery Service,是其他网络服务的基础,几乎所以数据包交换网络都提供这种服务。 2.Reliable Stream Transport Service,因为数据包交换并不能确保每一个数据包的可靠性,...

2017-12-06 15:10:48 72 0

原创 操作系统基础训练

1、简述Linux进程内存空间分为哪几个段?作用分别是什么? 3个段,数据段,代码段,堆栈段 数据段:存放全局变量,静态变量static,其中BSS数据段存放为初始化的全局变量和static,数据段存放初始化的全局变量。 代码段:存放程序的代码的数据。 堆栈段:存放子程序的返回地址,子程序...

2017-12-06 11:28:23 100 0

原创 多线程编程预习

1.何谓线程 线程是进程的一个实体,死cpu调度很分派的基本单位,它是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点运行中必不可少的资源,但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。   2.一个线程包含的内容 1.一个指向当前被执行命令的指令指...

2017-11-30 15:34:10 121 0

原创 进程间通信方式预习2

1.接口mmap()的使用方法 mmap()系统调用使得进程之间可以通过映射同一个普通文件实现共享内存,普通文件被映射到地址空间后,进程可以向访问普通文件一样对文件进行访问,不必再调用read(),writr()等操作。Mmap()系统调用并不完全是用于共享内存设计的,它本身提供了不同于一般对普...

2017-11-30 14:38:56 65 0

原创 进程间通信方式预习1

1.linux进程间通信的目的是什么? 1.数据传输,一个进程将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。 2.共享数据,多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程立刻看到。 3.通知事件,一个进程通知另一个或一组进程发生了某件事。 4.资源共享,多...

2017-11-29 14:58:26 84 0

原创 进程控制编程预习

1.为什么需要多进程,为何需要并发 有了并发技术,就是可以在同一时间同时执行多条任务的技术,程序不仅可以规规矩矩的一条线执行,可以多条线同时执行,这样就可以实现更加强大的功能,提供更多的服务,所以并发是必不可少的。 2.何谓进程调度 在linux中,首先,为每个进程指派一定的运行时间,这个时间...

2017-11-23 10:16:40 129 0

原创 Linux文件结构

1.Linux文件分为哪几类,有什么含义 (1)普通文件(regular):存在于外部存储器中,用于存储普通文件。 (2)目录文件(directory):用于存放目录项,是文件系统管理的重要文件类型。 (3)管道文件(pipe):一种用于进程间通信的特殊文件,也称为命名管道FIFO。 ...

2017-11-22 15:27:32 69 0

原创 栈章节预习问答

1.两栈的共享空间是如何实现的   如果我们有两个相同类型的栈,我们为他们各自开辟了数组空间,极有可能第一个栈已经满了,再进栈就溢出了,而另一个栈还有很多存储空间空闲。这时,我们完全可以用一个数组两存储两个栈。       我们的做法如下图,数组有两个端点,两个栈有两个栈底,让一个栈的栈...

2017-11-03 10:19:19 116 0

原创 数据结构之线性表预习

1.简述线性表中顺序存储结构的含义及主要元素 描述顺序存储结构需要三个属性:  1. 存储空间的起始位置:数组 data , 它的存储位置就是存储空间的存储位置  2. 线性表的最大存储容量  3. 线性表的当前长度 数组长度 与 线性表长度区别  - 数组长度:  即存放线...

2017-10-27 10:44:45 168 0

原创 预处理、结构体预习

1. 带参数的宏与自定义函数的区别   1.函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。   2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。   3....

2017-10-26 14:57:28 154 0

原创 C语言函数基础预习

1.函数的声明与定义 函数的声明就是声称一个函数的名字,只是说明函数的名字,不涉及函数的实现,即没有函数体,所以函数的声明只包括前三个部分。 函数的定义就是确定一个函数的意义,即让函数具有某项功能,但是这里可不是只有函数体,你要指明这个函数体就是那个函数,所以函数的定义包含了一个函数的所以部分...

2017-10-19 18:24:47 347 0

原创 C语言指针基础预习

1.指针的类型与指针所指向的类型的区别 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部 分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各 个指针的类型: (1)int*ptr;//指针的类型是int* (2)char*pt...

2017-10-19 17:58:01 133 0

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