自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零开始学习Linux(11)----进程间通信(管道)

往往需要多个进程协同,共同完成一些事情一个进程把自己的数据,能够交给另一个进程。进程间通信的本质:先让不同的进程,看到同一份资源(一般都是要由OS提供)基于文件的,让不同进程看到同一份资源的通信方式,叫做管道!管道只能被设计成为单向通信2.管道。

2024-06-28 21:10:32 391

原创 从零开始学习Linux(10)----动静态库

动态库加载后,会被映射到该进程的地址空间中。具体来说,是先在页表中填写好对应虚拟地址和物理地址之间的映射关系,才被映射到进程地址空间中的共享区中。如果此时另一个进程也要加载该动态库,只需要填写它的页表的映射关系即可,不需要再从磁盘中加载一份动态库代码和数据,如果所需库不在内存中才需要加载。这样就保证了一个动态库最多只在内存中存在一份,大大节省了内存开销。当动态库被加载时,它的代码和数据会被加载到物理内存中。将源文件编译为.o文件。fPIC为产生位置无关码。1.站在系统角度理解。

2024-06-25 11:16:03 995 1

原创 从零开始学习Linux(9)----文件系统

磁盘,SSD,OS要不要管理一下磁盘上的文件呢?我们一直在说的缓冲区和内核中的缓冲区,没关系(尽管他有),是语言层面的缓冲区,C语言自带缓冲区。如果向显示器进行打印,刷新方案就是行,对test.txt刷新策略,立即变成了全缓冲,b.访问文件之前,都得先打开,修改文件,都是通过执行代码的方式完成修改,调用系统调用是又成本的,时间&&空间,有效的减少C接口的使用效率。系统中是不是所有得文件都被打开了呢?f.系统中是不是所有的文件都被进程打开了?3.全缓冲,全部刷新---普通文件,缓冲区被写满,才刷新。

2024-06-03 16:28:35 1036 2

原创 从零开始学习Linux(8)----自定义shell

shell从用户读入字符串“ls”,shell建立一个新的进程,然后在那个进程中运行ls程序并等待那个进程结束。然后shell读取新的一行输入,建立一个新的进程,在这个进程中运行程序,并等待这个进程结束。5. 父进程等待子进程退出(wait)3. 建立一个子进程(fork)4. 替换子进程(execvp)

2024-05-14 10:39:28 268

原创 从零开始学习Linux(6)----进程控制

在上面的演示中,为什么我们不能像ls命令一样执行而是./的方式来执行,这时需要将你的程序所在的路径添加到环境变量中。我们可以通过不同的选项,让我们的同一个程序执行它内部不同的功能。命令行参数时Linux指令的基础。

2024-05-10 14:55:25 1119

原创 从零开始学习Linux(5)----进程

本质是设备之间会进行数据的来回拷贝,拷贝的整体速度,是决定计算机效率的重要指标。引入内存把效率问题转化为了软件问题。CPU只和内存打交道,外设只和内存打交道。2.操作系统任何计算机系统都包含一个基本的程序集合,称为操作系统(os),第一个被加载的软件是操作系统,操作系统是一个进行软硬件资源管理的软件。操作系统包括:1.内核(进程管理,内存管理,文件管理,驱动管理)2.其他程序(函数库,shell程序等)设计操作系统的目的:1.与硬件交互,管理所有的软硬件资源。

2024-04-22 15:47:15 910 1

原创 从零开始学习Linux(4)----yum和vim

LInux gcc出来的二进制程序默认是release模式,要使用gdb调试,必须在源代码生成二进制程序时加上-g选项。vim是一个多模式的编辑器,vim里面有很多的子命令,来编写代码,主要有命令模式,插入模式和底行模式三种模式。yum是我们Linux预装的一个指令,搜索,下载,安装对应的软件,相当与Linux的应用商店。gcc检查代码的规范性,语法错误,确定代码实际要做的工作,然后将代码翻译为汇编语言。Linux中我们要进行工具/指令/程序,安装,检查卸载等,需要yum的软件。

2024-04-19 16:21:38 960 1

原创 从零开始学习Linux(3)----权限

Linux用户:1.root,超级管理员2.非root,XXX,普通用户命令:su[用户名]功能:切换用户。su -:是指以root的身份重新登录一次。普通用户切换root需要输入密码,root切换普通密码无需输入密码。普通用户切换另一个普通用户,需要对方的密码。sudo 命令:对该命令进行提权,以root的身份执行该命令。注意。

2024-04-18 19:18:29 959 4

原创 从零开始学习Linux(2)----基本命令(2)

head [参数]... [文件]...head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。-n

2024-04-15 16:18:37 938 5

原创 从零开始学C++(9)----C++11新特性

在上述代码中,使用auto定义了变量x,并赋值为10,则变量x的类型由它的初始化值决定。由于编译器根据初始化值推导并确定变量的类型,因此auto修饰的变量必须初始化。除了修饰变量,auto还可作为函数的返回值。在C++11标准中,auto被赋予了新的功能,使用它可以让编译器自动推导出变量的类型。

2024-04-14 15:30:25 1141 3

原创 从零开始学习Linux(1)---基本命令(1)

介绍Linux的常见指令及其使用

2024-04-13 14:47:32 1082 9

原创 从零开始学C++(8)----异常

C++的异常处理通过throw关键字和try...catch语句结构实现,通常情况下,被调用的函数如果发生异常,就通过throw关键字1抛出异常,而函数上层调用者通过try...catch语句检测,捕获异常并对异常进行处理。try语句块用于检测可能发生异常的代码,如果这段代码抛出了异常,则catch语句会依次对抛出的异常1进行类型匹配,如果某个catch语句中的异常类型与抛出的异常类型相同,则该catch语句就捕获异常并对异常进行处理。throw后面的表达式可以是常量,变量或对象。throw 表达式;

2024-04-02 20:18:04 662 4

原创 从零开始学C++(7)----模版

template返回值类型 函数名(参数列表)...上述格式中,template是声明模版的关键字,中的参数称为模版参数;typename关键字用于标识模版参数,可以用class代替,模版参数不能为空,可以有多个模版参数,函数模版参数列表中的数据类型要使用中的参数名表示。78.5。

2024-03-30 19:28:01 774 3

原创 从零开始学C++(6)----多态与虚函数

C++中的多态分为静态多态和动态多态,静态多态是函数重载,在编译阶段就能确定调用哪个函数,动态多态是由继承产生,指同一个属性或行为在基类及其各派生类中具有不同的语义,不同的对象根据所接收的消息做出不同的相应,称为动态多态。多态的实现需要满足3个条件。

2024-03-29 17:18:51 879 3

原创 从零开始学C++(5)----继承与派生

在C++中,继承就是在原有类的基础上产生出新类,新类会继承原有类的所有属性和方法,原有的类称为基类或父类,新类称为派生类或子类,派生类也可作为基类派生出新类。通过继承,基类中的所有成员(除了构造和析构)被派生类继承,成为派生类成员,还可以增加新的成员。

2024-03-27 18:41:12 971 2

原创 从零开始学C++(4)----运算符重载

在C++中,运算符的操作对象可以是基本的数据类型,也可以是类中重新定义的运算符,赋予运算符新的功能,对类对象进行相关操作,被称为运算符重载。

2024-03-25 20:11:21 604 3

原创 从零开始学C++(3)---类与对象(万字整理)

类是对象的抽象,是一种自定义数据类型,用于描述一组对象的共同属性和行为。class 类名权限控制符:成员;(1)class是类定义的关键字。(2)类名是类的标识符,符合命名规范,(3)类名后面的大括号,用于包含类的成员,类的所有成员要在大括号中声明,类可以定义成员变量和成员方法,成员变量描述对象的属性,成员函数描述对象的行为。(4)声明类的成员时,要使用权限控制符限定成员的访问规则,包括public,protected,private,权限依次递减。(5)大括号后的‘;’表示类定义的结束。

2024-03-24 14:53:57 812 1

原创 C++对C语言的扩充

(1)使用命名空间::元素方式(2)使用using语句引用命名空间元素(3)使用using引用命名空间。

2024-03-21 21:30:16 1038 2

原创 从零开始学C++(2)---指针

注:const同时修饰时均不可以修改。

2024-02-06 22:44:28 885 2

原创 沥川同学的算法笔记——贪心算法(1)

1.把解决问题的步骤分为若干步;2.解决每一步时都选择当前看起来最优的策略,3.希望得到全局最优解。贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最好或最优决策的算法。其核心思想是通过局部最优的选择,希望最终能够达到全局最优的解。特点:1. 贪心选择性质:即做出每步的选择时,都采取当前状态下的最优选择。这种选择应该是局部最优的,并希望通过局部最优解最终达到全局最优解。

2023-12-10 17:58:25 44 2

原创 从零开始学Java(3)------掌握基本运算符和表达式

短路逻辑运算符与常规逻辑运算符类似,但它们在某些情况下会提前终止表达式的计算,以提高性能和避免不必要的计算。关系运算符用于比较两个值,并返回一个布尔值(true或false),表示它们之间的关系。Java中的算术运算符用于执行基本的数学运算,包括加法、减法、乘法、除法和取余。三目运算符(也称为条件运算符)用于根据条件的真假来选择不同的值。逻辑运算符用于执行逻辑运算,通常用于组合多个条件。自增和自减运算符用于增加或减少变量的值。它们有两种形式:前缀和后缀。在上面的例子中,如果。

2023-10-21 15:48:57 35 1

原创 从零开始学C++(1)----C++入门

5.函数重载。

2023-10-19 18:13:07 62 1

原创 从零开始学Java(2)

在Java中,关键字是被语言保留的特殊单词,用于执行特定的任务。不能将关键字用作标识符(变量名或方法名)。Java是一种强类型语言,每个变量都必须具有一个明确的数据类型。常见的数据类型包括整数、浮点数、布尔值等。这些基本的关键字、标识符和数据类型是Java语言的基础,理解它们是学习Java编程的重要第一步。变量的作用域指的是变量在程序中可以被访问的范围。通常分为局部变量和全局变量两种。标识符是用于给变量、方法、类等命名的符号。等都是合法的标识符。

2023-10-18 22:04:25 48 4

原创 从零开始学Java(1)

请在控制台画面上显示出相关字符。名称为Hello的类声明。

2023-07-18 11:28:44 39 1

原创 如何学好编程(第一篇博客)

2.我编程的目标首先是在学习数据结构的同时将C语言学习扎实,多在牛客网,洛谷等平台刷题 ,C语言是编程的基础,学好C语言之后学习其他语言都会豁然开朗,也能更好地理解数据结构与算法的基本原理。3.怎么学习编程:每学习一门语言时要理解透彻它的语法,要把握好每个语言独有的特性,要多练习编程,刷题,课余时间多看编程相关书籍,关注编程前沿发展,把握好时代的主流。1.本人目前是软件工程专业大一学生,一个偶然的契机让我萌生出写博客的想法,这样可以既记录我的学习历程,又可以向别人分享我的学习经验。

2023-04-01 14:11:09 63

空空如也

空空如也

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

TA关注的人

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