自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 shell程序设计

①在默认情况下,所有的shell变量值都被认为是字符串,而for结构循环能够处理一组值,这组值可以使任意字符串的集合。①case结构允许通过一种比较复杂的方式将变量的内容和模式进行匹配,再根据匹配的模式去执行不同的代码。定义:shell是一个作为用户与Linux系统间接口的程序,它允许用户像操作系统输入需要执行的命令。①如果需要重复执行一个命令序列,但事先又不知道这个命令应该执行的次数,通常使用while语句。条件:字符串比较、算术比较、文件测试(如:&& ||)。类型:(1)编译型(2)解释型。

2023-12-30 14:20:18 519

原创 数据结构——链表

原理:使用两个指针相差k-1,当第一个指针指向最后的时候,第二个指针则指向第K个位置。3.给定一个结点指针,在结点之前插入一个结点,解法同上。先后插一个结点,然后交换当前结点和后面结点的数据。1.可以通过记录最后一个节点来判断是否相交。公式x = (n-1)y + y -d;7.若结点个数为奇数则返回中间结点。若为偶数则返回中间第一个个结点。8.带头结点的链表转置。4.判断单链表是否有环。9.找出相交链表的交点。6.找出倒数第k个数。

2023-12-30 14:19:39 1058

原创 栈的应用(括号匹配问题、中缀表达式转为后缀表达式、求栈内最小值 、共享栈)

定义一个新的栈结构,在该结构中可以获取当前栈内最小值Min,要求在该栈中调用入栈Push,出栈Pop和获取最小值Min的函数的时间复杂度都为O(1)。、解析括号情况:遇到左括号,一定是进栈(栈外的左括号优先级最高,栈内右括号优先级最低);如果遇到右括号(栈内的符号依次出栈),直到遇到左括号。、遇到运算符,如果是空栈,直接进栈;如果是非空栈,遇到的运算符和栈顶元素比较,优先级高的进栈或出栈。、+、-(栈内比栈外高),*、/(栈外最高,栈内最低),优先级最低。、如果遍历完整个中缀表达式,栈内如果还有符号。

2023-12-30 14:19:06 688

原创 软件工程导论——(为什么要学习软件工程?软件工程能学到什么?如何学习软件工程?)

一、软件的定义软件是程序和所有使程序正确运行所需要的相关文档和配置信息。二、软件的特征1、软件是无形的2、软件副本制作简单3、软件无磨损三、软件的发展四、软件的分类基于软件功能的划分系统软件、支撑软件、应用软件。基于软件工作方式的划分实时处理软件、分时软件、交互式软件、批处理软件。基于软件规模的划分微型软件、小型软件、中型软件、大型软件、巨大型软件、极大型软件。基于软件失效的影响进行划分基于软件服务对象的范围进行划分定制软件 、产品软件。五、软件危机。

2023-12-30 14:18:35 1925 3

原创 Linux——计算机网络基础概论

网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、 路由器等设备。网络设备有:交换机、路由器、集线器传输介质有:双绞线、同轴电缆、光纤连接网络的目的:资源共享。

2023-12-25 12:34:03 729

原创 OS——进程管理(测试习题)

6.7 进程运行时需要一次性申请所需要的全部资源,打破了死锁发生的( )条件。6.4 只能通过wait操作和signal 操作进行更改的特殊变量是( )。6.5 下列给出的对信号量进行P、V操作的原则中,不正确的是( )。6.8 临界区是指包含对( )进行操作的代码区域。a.互斥问题的P、V操作必须在同一进程中成对出现。b.合作问题的P、V操作必须在合作进程间成对出现。b.输入与输出集合交集为空。c.输出与输出集合交集为空。d.输出与输入集合交集为空。d.P、V操作必须成对出现。c.操作系统接口函数。

2023-12-25 12:32:28 338

原创 Linux——脚本调用

(1)awk:源文件读取内容,然后进行过滤,提取用户感兴趣的字段(2)sed:./a.sh 启动新的解释器. ./a.sh 等价 source./a.sh 在同一个解释器中执行。

2023-12-25 12:31:39 543

原创 Linux——Redis入门

Not Only SQL,泛指非关系型数据库。

2023-12-25 12:31:18 400

原创 shell程序设计(第一、二节)

shell是一个作为用户与Linux系统间接口的程序,它允许用户像操作系统输入需要执行的命令。

2023-02-08 21:01:47 355 1

原创 Linux——I/O复用(select的用法)

I/O 复用使得程序能同时监听多个文件描述符,这对于提高程序的性能至关重要。如果在超时时间内没有任何文件描述符就绪,select将返回0。select失败时返回-1并设置errno。如果在select等待期间,程序接收到信号,则select立即返回-1,并设置errno为 EINTR

2022-12-13 09:40:56 828

原创 C++——有关STL的概述(出现、构成、应用)

①容器——vector、stack、queue、list、set(集合)、map(映射)、multiset... 存储元素序列式容器:可序群集,关联式容器:已序群集,元素位置取决于特定的排序准则和插入顺序②算法——copy、sort、find、find_if、count、count_if、swap... 操作元素③迭代器:容器和算法的粘合剂,可以将它认为指针用迭代器将容器中的元素访问出来,然后通过算法来操作。

2022-12-07 19:59:31 612

原创 Linux——进程并发控制(系统中的POSIX信息量机制、进程间通信)

Posix提供的无名信号量是基于内存的信号量,它们由应用程序分配信号量的内存空间,然后由系统初始化它们的值。有名管道是一个可以在文件系统中长期存在的、具有路径名的文件。 无名管道是一个临时文件。利用pipe建立起来的无名文件(无路径名)。 只用该系统调用所返回的文件描述符来标识该文件,故只有调用pip 用系统调用mknod建立。可让更多的进程也能利用管道进行通信。其它进程可以知道它的存在,并能利用路径名来访问该文件。对有名管道的访问方式与访问其他文件一样,需先用open( )打开。

2022-12-06 18:23:10 1055

原创 OS——进程并发控制(五大经典问题信号量机制描述)

目录一、经典问题信号量机制描述1、任意两个进程可以并发的条件(Bernstein条件)2、临界区管理原则3、信号量的P、V操作(1)P、V操作(2)P、V操作的原则(3)用信号量解决进程间互斥问题4、 生产者---消费者问题(解决访问缓冲区问题)(1)问题描述(2)信号量的设置5、哲学家就餐问题(1)问题描述 (2)解决思路 6、读者和写者问题(共享文件/存储区)(1)问题描述(2)问题分析(3)信号量的设置 7、理发师问题(调度的问题模拟)(1)问题描述(2)信号量的设置8、苹果橘子问题(1)问题描述(

2022-12-06 15:10:19 1397

原创 java题库——继承和多态

a. A method can be overloaded in the same class.b. A method can be overridden in the same class.c. If a method overloads another method, these two methods must have the same signature.d. If a method overrides another method, these two methods must have

2022-12-05 11:18:14 670

原创 java题库——对象和类

目录一. 单选题(共10题,66分)1. (单选题)The default value for data field of a boolean type, numeric type, object type is , respectively.2. (单选题)Analyze the following code.public class Test { int x;public Test(String t) { System.out.println("Test");}public static void ma

2022-12-03 17:09:07 214

原创 java题库——认证考试题1

我的答案:E答案解析:types in class variables default to null.我的答案:答案解析:these two imports could be removed. In that case, the answer would be option D.我的答案:D答案解析:

2022-12-02 18:36:32 622

原创 C++——虚函数、虚析构函数、纯虚函数、抽象类

被virtual 关键字修饰的成员函数称为虚函数。在类中定义了虚函数就会有一个虚函数表(vftable),对象模型中就含有一个指向虚表的指针(__vfptr)。在定义对象时构造函数设置虚表指针指向虚函数表。使用指针和引用调用虚函数,在编译只需要知道函数接口,运行时指向具体对象,才能关联具体对象的虚方法(通过虚函数指针查虚函数表得到具体对象中的虚方法)。派生类的析构函数会自动调用基类的析构函数。只要基类的析构函数是虚函数,那么派生类的析构函数不论是否用virtual关键字声明,都自动成为虚析构函数。

2022-12-01 16:56:25 1435

原创 C++——虚函数、虚析构函数、纯虚函数、抽象类

二、虚析构函数1、什么是虚析构函数?2、虚析构函数的作用 3、 构造函数4、为什么构造函数不能是虚函数?5、构造函数和虚析构函数的联系6、为什么程序员不能调构造函数,但是可以调用析构函数?7、虚析构函数产生多态三、纯虚函数1、定义:2、纯虚函数的一般格式 3、例题理解四、抽象类1、抽象类的定义2、抽象类的主要作用 如有错误,敬请指正。您的收藏与点赞都是对我最大的鼓励和支持!

2022-12-01 15:08:08 1694

原创 OS操作系统——设备管理(测试习题)

15、在Linux系统中,使用ls -l /dev命令查看设备文件时,第一列字母为c的是()。16、在Linux系统中,使用cat /proc/interrupts命令看到的是()。19、Linux系统中用模块方式管理设备驱动程序,其中动态加载设备驱动的方式是()11、在Linux系统中,独立于设备的I/O软件实现统一放到( )中。14、在Linux系统中,devices文件中所显示的第一列是()。7、程序中涉及外设访问的函数调用,如printf()将访问 ()?20、 Linux系统中的终端驱动程序。

2022-11-28 18:23:32 337

原创 OS操作系统——文件管理(测试习题)

19、 Linux系统的ABFD表中对每个i节点信息中f.count的作用是( )。1、()是具有符号名的,在逻辑上具有完整意义的一组相关信息项的序列。11、 进程在对一个打开的文件进行读写时,需要的参数不包括( )。7、文件系统中的按名存取,指的是按照文件的( )存取文件。15、在磁盘中存放所有文件说明信息和文件标识符的是( )。16、在C语言中调用open()函数返回的fd是( )。6、树形目录中的每个子目录都是其父目录中的一个 ()。2、文件的存取方式与文件的( )有关。

2022-11-28 16:01:49 712

原创 网络程序设计——重叠I/O模型

对于网络重叠I/O操作,等待I/O操作结束的另一种方法是使用完成例程。异步的发送和接收接口函数的参数中的最后一个参数lpCompletionROUTINE就是用来指向完成例程的指针。若指定此参数,hEvent参数将被忽略,上下文信息将传送给完成例程函数。如果重叠操作立即完成,则返回0;如果重叠操作被成功初始化,并且稍后完成,则返回WSA_IO_PENDING。WinSock可以使用事件通知和完成例程两种方式来实现重叠I/O的操作。(3)两种获取传输数据数量的方法。

2022-11-27 11:55:38 875

原创 C++——多态、虚表、单继承、多继承、覆盖、联编

具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。多继承:在子类的对象中,每个父类都有自己的虚表,将最终子类的虚函数放在第一个,如果在子类中重写了多个父类的同名同参虚函数,那么在虚表中同样做了修改。父类的虚表中,这样做解决了不同的父类类型的指针指向比较清晰。③添加自己的函数:添加了两个自己的虚函数gb,hb。联编(捆绑,绑定)——函数调用和函数体联系的过程。②改写:改写A中的虚函数,改为B::fa。(1)重载多态——函数重载——运算符重载。(2)包含多态——virtual函数。

2022-11-26 22:58:47 626

原创 网络程序设计——异步选择模型(基于消息的选择、基于事件的选择)

共同特点:不管 I/O事件是否发生,应用程序都会按既定流程主动试着进行I/O操作,而且直至操作成功才会罢休,因此这三种套接字模型都属于。尽管非阻塞模型和Select模型一次能够尝试对多个套接字进行I/O操作,要比阻塞模型效率高很多,但应用程序一旦开始I/O操作,则I/O操作完成之前都是无法进行其它操作。WSAAsyncSelect模型和WSAEventSelect模型都属于异步I/O模型,二者的差别在于。

2022-11-25 14:54:49 1535

原创 Linux——进程间通信(共享内存)

共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理内存上申请一块空间,多个进程可以将其映射到自己的虚拟地址空间中。所有进程都可以访问共享内存中的地址,就好像它们是由malloc分配的一样。如果某个进程共享内存写入了数据,所做的改动将立刻被可以访问同一段共享内存的任何其他进程看到。shmget()用于创建或者获取共享内存shmget()成功返回共享内存的 ID, 失败返回-1key: 不同的进程使用相同的 key 值可以获取到同一个共享内存。

2022-11-24 19:12:14 544

原创 Linux——文件管理(文件系统、目录管理、文件操作)

检索时,对以‘/’开头的路径名,须从根目录开始检索,否则,从当前目录开始,并把与之对应的i节点作为工作索引节点,然后用文件路径名中的第一分量名与根或与当前目录文件中的各目录项的文件名,逐一进行比较。若结果为0,便回收该内存i节点,再对该文件的磁盘i节点中的连接计数减1,若其结果也为0,便删除此文件,并回收分配给该文件的盘块和磁盘i节点。创建一新文件时,就为之建立一个磁盘索引结点,以将文件的有关信息记入其中,并将用户提供的文件名和磁盘索引结点号一并组成一个新目录项,记入其父目录文件中。

2022-11-24 18:22:34 2870 2

原创 数据通信习题——期中测试

本文仅为自己整理而写,仅供参考。

2022-11-15 11:56:47 162

原创 Linux——系统对设备的访问方式、设备管理、设备驱动

而/dev/hda1,/dev/hda2,/dev/hda3则表示第一块硬盘的第一、二、三分区。设备文件没有文件长度,而增加了主设备号,从设备号. 如,ls /dev/sd。②释放(关闭)设备是由release()完成的。如,打印机是用lp_open()打开的,而硬盘是用hd_open()打开的。–主设备号(major number):相同的设备使用相同的设备驱动程序;②可以通过文件/proc/devices来查看系统中使用的设备。–次设备号(minor number):用来区分具体的设备实例。

2022-11-14 19:11:42 1899

原创 C++——友元(友元函数、友元类的特点)

友元函数是一个不属于类成员的函数,但它可以访问该类的私有成员。换句话说,友元函数被视为好像是该类的一个成员。友元函数可以是常规的独立函数,也可以是其他类的成员。实际上,整个类都可以声明为另一个类的友元。为了使一个函数或类成为另一个类的友元,必须由授予它访问权限的类来声明。类保留了它们的朋友的 "名单",只有名字出现在列表中的外部函数或类才被授予访问权限。通过将关键字 friend 放置在函数的原型之前,即可将函数声明为友元。

2022-11-07 10:13:36 1117

原创 C++——指针、右左法则、指针和函数的关系、函数指针、函数转移表(函数指针static)

①int (*p)[4]——p是整型数指针——数组指针——指向数组的指针//先找标志符,看p,跟星号相结合,p是指针。函数指针函数 fn是个函数名,函数里面有int n的一个参数,fn函数的返回值是个指针,——q是指针数组——存储指针的数组//q是数组名,后面直接跟[]int (*p4)(int,int)——p4是函数指针,指向函数的指针。int *p3(int n)——p3是指针函数,返回值为指针的函数。单指针、双指针、指针数组、数组指针、指针函数、函数指针。(1)函数名——代表函数的入口地址。

2022-11-07 08:59:18 409

原创 Linux——信号量(定义、示例、信号量接口、ipcs命令)

①临界资源:指计算机的软硬件资源;同一时刻,只允许进程或者线程访问的资源。:联合体semun,这个联合体需要自己定义;思路: 在打印前进行p操作和v操作。②临界区:访问临界资源的代码段。(2)临界资源和临界区的概念。(不存在abab交替打印)

2022-11-06 16:28:23 3150

原创 Linux——页面置换算法(OPT、FIFO、LRU的实现与比较)

本实验的程序设计首先用srand( )和rand( )函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。第310条-第319条指令为第31页(对应虚存地址为[310,319])C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’第 0 条-第 9 条指令为第0页(对应虚存地址为[0,9])第10条-第19条指令为第1页(对应虚存地址为[10,19])B:顺序执行一条指令,即执行地址为m+1的指令。D:顺序执行一条指令,其地址为m’+1。

2022-11-01 10:11:44 1293

原创 Linux——页面置换算法(OPT、FIFO、LRU的实现与比较)

由于无法预测各页面将来的使用情况,只能利用“最近的过去”做“最近的将来”的近似,因此,LUR置换算法是选择最近最久未使用的页面予以淘汰。(3)缺点:该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如:含有全局变量、常用函数、例程等的页面,FIFO算法并不能保证这些页面不被淘汰。(3)缺点:人们目前通常还无法预知,一个进程在内存的若干个页面中,哪一个页面是未来最长时间内不再被访问的,因此,该算法是无法实现的,但可以利用该算法去评价其他算法。B:25%的指令是均匀分布在前地址部分。

2022-11-01 09:59:03 3717 3

原创 Linux——进程间通信——管道(文件)通信

(1)管道(2)信号量(3)共享内存(4)消息队列(5)套接字。

2022-11-01 09:34:08 880

原创 E0070——不允许使用不完整的类型和E3365——不允许使用不完整的类类型解决办法

如果在Visual Stdio2019遇到以下问题。在头文件中加入#include

2022-10-31 08:20:44 3483

原创 E0864——vector不是模板解决办法

如果在Visual Stdio2019遇到以下问题,在头文件加入#include

2022-10-31 08:09:48 809

原创 Linux——存储管理(虚存页面置换算法)

的条件下对算法进行评估。下面将用实例说明介绍一些经典算法。假设某进程有5页代码,系统给其分配3个页框,其运行过程可以用固定的12次访页轨迹来描述。

2022-10-25 15:08:46 1558

原创 Linux——创建my_bash(命令解释器)项目+代码

bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令。bash还能从文件中读取命令,这样的文件称为脚本。和其他Unix shell 一样,它支持文件名替换(通配符匹配)、管道、here文档、命令替换、变量,以及条件判断和循环遍历的结构控制语句。包括关键字、语法在内的基本特性全部是从sh借鉴过来的。其他特性,例如历史命令,是从csh和ksh借鉴而来。总的来说,Bash虽然是一个满足POSIX规范的shell,但有很多扩展。bash:命令解释器。

2022-10-21 10:44:13 723

原创 Linux——信号(常见信号的值以及对应功能、信号的响应方式)

信号是系统响应某个条件而产生的事件,进行接收到信号会执行响应的操作;(2)与其信号有关的系统调用在头文件中;(3)信号的代号的存储位置:

2022-10-21 10:25:52 1260

原创 网络程序设计——VC的多线程编程(线程与进程)

为防止和正常的返回值混淆,C/C++语言的系统调用一般并不直接返回错误码,而是将错误码存入一个名为 errno 的全局变量中,errno 变量以及各种不同错误码的定义均在 文件中。比如:一个线程负责通过网络收发数据,另一个线程完成所需的计算工作,第三个线程来做文件输入输出,当其中一个由于某种原因阻塞后(比如通过网络收发数据的线程等待对方发送数据),另外的线程仍然能执行而不被阻塞。在支持线程的操作系统中,一个进程内至少有一个线程,称为主线程,它无需由用户去主动创建,是由系统自动创建的。

2022-10-20 17:27:19 589

原创 软件工程——可行性分析习题

本文主要整理收集《软件工程》——可行性分析有关习题。

2022-10-20 15:02:14 676

指针、数组和字符串的总结

介绍了指针怎样定义、指针和数组的关系,还有一些字符串的相关操作

2021-12-01

空空如也

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

TA关注的人

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