自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux文件系统深入理解

操作系统读取数据时,首先确定数据所在的块地址(逻辑块地址,LBA),根据块号计算出扇区号,交由磁盘,磁盘根据CHS定址法找到指定扇区,接着连续读取8个扇区交给操作系统,磁盘的基本单位是扇区,如果给扇区从0开始按顺序编号,那么就可以抽象成一个数组,扇区号就是下标,访问某个扇区给定下标后,磁盘根据下标(扇区号)去寻找存储区域。一般来说,操作系统和磁盘交互的时候,最基本的单位是4KB,也称作数据块,假设一个磁盘的一个扇区大小为512字节,那么一个数据块就是8个扇区,要找到扇区号为346的扇区。

2025-07-22 23:32:46 390

原创 Linux文件系统理解1

本文系统介绍了Linux系统下的文件操作机制。从系统调用层面详细讲解了open/close/read/write等文件操作函数的使用方法,包括文件描述符、权限掩码等关键概念。在操作系统层面,阐述了内核如何通过"先描述后组织"的方式管理文件,包括struct file数据结构、文件描述符表等核心机制。同时揭示了C语言文件操作函数是对系统调用的封装这一本质。最后说明了Linux"一切皆文件"的设计哲学,以及硬件设备如何通过类似文件的方式被管理。全文深入浅出地剖析了Linu

2025-07-22 23:29:40 836 1

原创 Git使用与管理

对象库(objects),修改的工作区内容会写入对象库的一个新的git对象中,达到维护版本的目的,每次add都会有一个commit id,HEAD可以记录最近一次提交的commit id,HEAD^表示HEAD的上次提交的commit id,HEAD^^为上上次,以此类推。master主分支上一般提交稳定的经过测试的代码,但是如果出现bug,则需要新开一个分支去处理,既不能影响我们原先正在开发的分支,也不能影响master分支,因此可以先将我们开发代码的分支上的代码进行保存,在去新建分支处理bug。

2025-07-18 23:38:14 1025

原创 Linux 进程管理核心机制

bash进程启动时,默认会生成两张表。1.argv[],命令行参数表。这张表从命令行获取,即用户输入2.env[], 环境变量表。这张表从os的配置文件获得这两张表bash通过各种方式交给子进程。

2025-07-11 18:48:38 758

原创 Linux进程初识

进程:程序执行的一个实例,包括代码、数据和执行上下文PCB(进程控制块):操作系统管理进程的核心数据结构(Linux中为设计原理:“先描述后组织” - 通过结构体描述进程,再通过数据结构组织管理// Linux中的进程控制块// 包含进程所有管理信息long state;// 进程状态pid_t pid;// 进程ID// 打开的文件信息// ... 其他重要字段。

2025-05-29 22:34:25 777

原创 C++内存管理

若类有显式析构函数,new[]会多分配4字节(32位系统)存储对象数量(位于数组头部)。delete[]根据此数量调用对应次数的析构函数,再释放内存。

2025-05-26 21:01:44 1021

原创 C++类和对象

​ 类似于结构体定义,与C语言不同的是,除了定义成员变量之外,还可以定义成员函数,同时引入访问限定符,来对类的成员进行封装一般在类内定义的成员函数,编译器可能会当成内联函数来处理,因此可以进行声明和定义分离在声明的头文件中如下声明在源文件中如下定义。

2025-04-29 22:24:54 914

原创 C语言文件操作

filename :文件名,即我们要进行打开的文件名mode: 打开文件方式,常用的有以下方式“r”, 只读,为了往程序里输入(读取)数据,打开一个已经存在的文件,如果该文件不存在,则会出错。“w”,只写,为了往文件里输出数据(写入文件),打开一个文本文件,如果指定文件不存在,则会自动创建一个文件,以filename命名。“a”,向文件末尾增加数据,如果指定文件不存在,则会自动创建一个文件,以filename命名。“rb”,与“r”的区别是该方式打开的文件是二进制文件,其余都相同。

2024-09-28 19:46:24 885 1

原创 C语言动态内存管理

C语言中,内存是存放数据信息的空间,里边有许多的区域:栈区,堆区,数据段(静态区),代码段。

2024-09-27 18:21:08 201 1

原创 C语言数据类型及存储

自定义类型是描述复杂的含义,用单一的内置类型无法描述时,所使用的类型,是由用户自己来定义的,通俗一点说就是DIY。告诉编译器我有这个变量,而他的值未知,这是声明。声明后给变量赋值,系统会为变量开辟空间来存储数据,这是定义。也就是说,声明和定义的区别就是有没有分配内存。变量的声明和定义方法如下int age;// 数据类型 变量名称;这一步是声明age = 0;//分配内存空间,存储数据,这一步是定义//声明的时候给他初始化,分配内存空间了,是定义。

2024-09-26 20:12:33 941 1

原创 LCR 171. 训练计划 V

某教练同时带教两位学员,分别以链表l1l2记录了两套核心肌群训练计划,节点值为训练项目编号。两套计划仅有前半部分热身项目不同,后续正式训练项目相同。请设计一个程序找出并返回第一个正式训练项目编号。如果两个链表不存在相交节点,返回null。如下面的两个链表在节点c1开始相交。- 相交的起始节点的值。如果不存在相交节点,这一值为 0l1- 第一个训练计划链表l2- 第二个训练计划链表skip1- 在l1中(从头节点开始)跳到交叉节点的节点数skip2- 在l2中(从头节点开始)跳到交叉节点的节点数。

2024-03-31 21:42:31 1715 2

原创 C语言指针

指针的类型决定了指针向前或者向后走一步有多大(距离)。

2024-03-28 15:56:58 812 2

原创 C语言操作符

赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。整个表达式的结果是最后一个表达式的结果。操作符的两个操作数必须为整数。返回的是整除之后的余数。操作符之外,其他的几个操作符可以作用于整数和浮点数。逗号表达式,就是用逗号隔开的多个表达式。注:移位操作符的操作数只能是整数。这些运算符都可以写成复合的效果。注:他们的操作数必须是整数。

2024-03-24 15:00:41 1787 1

原创 C语言数组

1. 数组是使用下标来访问的,下标是从0开始。2. 数组的大小可以通过计算得到。

2024-03-22 11:02:39 1766 1

原创 C语言函数

C语言中函数的理解

2024-03-21 21:51:51 660 1

原创 C语言之分支语句

从if开始,先判断if后边的表达式,若为真,则执行,后边的else if 和 else不在执行,若不满足,则从上往下判断,遇到成立的判断条件,则会执行其后边的语句,else前边所有判断的条件都不满足时会执行else。if后跟的判断条件,其表达式结果为0则为假,不执行if后{ }内的语句,或者第一条语句(只有一天语句没带{ }时),表达式的值为1,则为真,执行后边语句。与单一的if语句不同的时,if else语句if的判=判断条件不成立时,会执行else后边的语句。

2023-12-01 20:36:34 500 1

原创 启程,编程之路

我是一名在校学生,作为一个对编程充满兴趣的学生,我首次来到CSDN,我希望能与大家交流学习,在互帮互助中提升我的编程水平。我未来准备从事编程行业,我未来两年将努力学习编程,计划学习c++和java,并且参加一些比赛,来丰富我的阅历。对于学习编程,我会每日学习理论知识并且找题实践,持之以恒,将玩游戏,逛街的时间压缩压缩,尽量做到每天学习两小时以上,做题两小时以上。等到假期,就要快马加鞭,大学四年时间有限,将时间利用起来,功夫下到位。

2023-11-28 23:42:50 413

空空如也

空空如也

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

TA关注的人

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