自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 122.Mit.S081操作系统内核(实验环境搭建)

Mit6.s081 是麻省理工学院面向本科生的操作系统课程,其课程实验是在教学用操作系统xv6上进行扩展和优化。xv6 操作系统源代码只有一万余行,并且相对清晰和模块化,每个 lab 都带有自动评测功能,非常适合用于实践操作系统知识。希望能借此来掌握操作系统的一些知识。qemu(quick emulator):这是一个模拟硬件环境的软件,利用它可以运行我们编译好的操作系统。准备一个Linux系统,安装qemu以及其他依赖,通过git克隆下github。

2024-04-18 15:22:01 529 1

原创 121.DLL的封装和调用(C/C++)

第一步:创建空文件夹,分别创建include(存放.h)和dll(存放lib和dll)文件夹.第五步:导入SDK的dll库,设置dll库路径,然后选择lib。运行一下,能成功在控制台输出则说明,封装dll和调用成功。第二步:根据需要配置C/C++语法标准并应用。第五步:配置完这些之后,可以删除刚创建的模板。第一步:创建一个新项目,并进入新项目属性配置。第二步:进入项目配置,导入SDK头文件路径。第一步:打开vs2022,创建新项目。第一步:右击项目,选择属性跳转进去。第七步:编写.h文件和.cpp文件。

2024-04-09 21:26:23 392

原创 120.单例模式(C++设计模式)

线程安全指的是在多线程环境下,程序或者代码可以正确地处理多个线程并发执行的情况,保证数据的一致性和正确性。具体来说,线程安全的代码在多线程并发执行时,不会出现竞态条件和数据不一致等问题。

2024-04-02 09:00:04 1049

原创 119.设计链表(力扣)

方法会在指定索引处插入一个新节点。它遍历链表直到达到指定索引的前一个节点,然后将新节点插入到前一个节点的后面,并增加链表的大小。方法会在链表尾部插入一个新节点。它遍历链表直到最后一个节点,然后将新节点插入到最后一个节点的后面,并增加链表的大小。方法会在链表头部插入一个新节点。它创建一个新的节点,将新节点的。链表的每个节点都包含一个整数值。对象时,它会初始化一个虚拟头节点。指针为新节点,并增加链表的大小。和一个指向下一个节点的指针。指向当前头节点,然后更新。

2024-03-20 22:15:23 408

原创 118.Qt入门,实现一个图片查看软件

【代码】118.Qt入门,实现一个图片查看软件。

2024-03-19 22:53:56 180

原创 117.移除链表元素(力扣)

处理完头节点后,函数遍历剩余的链表部分。如果遇到节点的值与指定的值匹配,则通过调整指针来删除该节点。函数首先检查头节点是否与要删除的值匹配。如果匹配,则迭代删除头节点,直到头节点的值不再匹配指定的值。如果下一个节点的值与指定的值匹配,则调整指针以跳过该节点并删除它。此代码有效地从链表中删除所有指定值的节点,并返回修改后的链表。的成员函数,用于从单链表中删除指定值的所有节点。在删除头节点的循环中,函数检查头节点是否存在(赋值为下一个节点,并删除先前的头节点。最后,函数返回修改后的链表的头指针。

2024-03-04 22:47:26 293

原创 116.数组:螺旋矩阵||(代码随想录)

求解本题依然是要坚持循环不变量原则。由外向内一圈一圈这么画下去。

2024-02-16 14:04:08 449

原创 115.工业相机海康SDK开发指南(阅读)

包含初始化SDK和反初始化SDK接口。(由于看不到函数内部的具体实现,因此以下的解释仅代表个人的理解)

2024-02-02 14:44:34 1412

原创 114.QTimer类和QWidget类

要使用它,只需创建一个QTimer类对象,然后调用其 start() 函数开启定时器,此后QTimer对象就会周期性的发出 timeout() 信号。当用户点击 "开始" 按钮时,定时器启动,每秒更新一次当前时间。QWidget类是所有窗口类的父类(控件类是也属于窗口类), 并且QWidget类的父类的QObject, 也就意味着所有的窗口类对象只要指定了父对象, 都可以实现内存资源的自动回收。这段代码创建了一个简单的Qt窗口应用程序,其中包含了两个按钮("开始"和"关闭"按钮,分别由。

2024-01-13 15:03:20 818 3

原创 113.QT中的信号槽

在Qt中,可以自定义信号和槽,以便在你的应用程序中实现自定义的事件处理机制,同样还是使用connect()对自定义的信号槽进行连接。要编写新的类并且让其继承Qt的某些标准类这个新的子类必须从QObject类或者是QObject子类进行派生在定义类的头文件中加入 Q_OBJECT 宏在Qt中信号的本质是事件, 但是在框架中也是以函数的形式存在的, 只不过信号对应的函数只有声明, 没有定义。

2024-01-13 10:33:23 989

原创 112.Qt中的窗口类

我们在通过Qt向导窗口基于窗口的应用程序的项目过程中倒数第二步让我们选择跟随项目创建的第一个窗口的基类, 下拉菜单中有三个选项, 分别为: QMainWindow、QDialog、QWidget如下图:常用的窗口类有3个在创建Qt窗口的时候, 需要让自己的窗口类继承上述三个窗口类的其中一个。

2024-01-10 15:57:53 1177

原创 111.连接已终止的线程、线程分离、线程取消

功能:和一个已经终止的线程进行连接回收子线程的资源这个函数是阻塞函数,调用一次只能回收一个子线程参数:thread:需要回收的子线程的IDretval: 接收子线程推出时的返回值返回值:0 成功非0 失败,返回错误号这里将在child id打印之后,睡眠3s才会打印回收子线程资源成功。

2024-01-10 10:34:51 555

原创 110.线程(创建、终止)

◼ 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)◼ 进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。

2024-01-09 14:35:04 382

原创 109.第一个qt项目

今天正式开始qt的学习。在安装完qt开发环境之后,下面我们来使用QtCreator创建项目。

2024-01-08 16:00:50 567

原创 108.STL adjacent_find算法

查找了相邻的两个重复元素,即 2 和 4。如果找到了相邻重复元素,返回的迭代器指向第一个重复元素;如果未找到,返回的迭代器等于。是C++ STL中的算法之一,用于在指定范围内查找相邻重复的元素,返回第一对相邻重复元素的第一个元素的迭代器。也可以通过提供谓词函数来自定义判定条件。

2023-12-11 23:33:59 470

原创 107.管道(有名、无名管道)

有名管道拥有管道的所有特性,之所以称之为有名是因为管道在磁盘上有实体文件, 文件类型为p ,有名管道文件大小永远为0,因为有名管道也是将数据存储到内存的缓冲区中,打开这个磁盘上的管道文件就可以得到操作有名管道的文件描述符,通过文件描述符读写管道存储在内核中的数据。不管是有血缘关系还是没有血缘关系,使用有名管道实现进程间通信的方式是相同的,就是在两个进程中分别以读、写的方式打开磁盘上的管道文件,得到用于读管道、写管道的文件描述符,就可以调用对应的read()、write()函数进行读写操作了。

2023-12-10 22:58:57 1014

原创 106.进程控制(结束、孤儿、僵尸进程)以及进程回收

进程控制是指在操作系统中对进程进行创建、终止、挂起、唤醒以及进程之间的同步、通信等操作的管理。

2023-12-08 17:08:46 1311

原创 105.长度最小的子数组(力扣)|滑动窗口

【代码】105.长度最小的子数组(力扣)|滑动窗口。

2023-12-07 23:12:51 407

原创 104.进程创建

Linux中进程ID为pid_t类型,其实本质就是一个正整数,通过ps aux命令可以得到验证。pid为1的进程是Linux系统中创建的第一个进程。被调用时,操作系统会复制父进程的地址空间、文件描述符等信息,创建一个全新的子进程。父进程和子进程之间的区别在于,是一个用于在 Unix 和类 Unix 操作系统上创建新进程的系统调用。被调用时,它会创建一个当前进程的副本,这个副本称为子进程,而调用。

2023-12-07 21:48:13 451

原创 103.进程概述

并行是指系统同时执行多个任务,即在同一时刻,多个指令或任务在多个处理单元上同时执行。

2023-12-06 23:04:17 812

原创 102.套接字-Socket网络编程4(TCP通信流程)

这个函数是一个阻塞函数,当没有新的客户端连接请求的时候,该函数阻塞;当检测到有新的客户端连接请求时,阻塞解除,新连接就建立了,得到的返回值也是一个文件描述符,基于这个文件描述符就可以和客户端通信了。套接字编程中,常用的套接字函数通常涵盖套接字的创建、绑定、监听、连接、发送、接收、关闭等操作。以下是一些常用的套接字函数,这些函数通常在C语言的。函数接受客户端的连接请求,该函数会阻塞程序直到有客户端连接进来。函数将套接字与特定的IP地址和端口号绑定。函数关闭服务端的套接字。函数关闭客户端的套接字。

2023-12-05 20:31:51 949

原创 101.套接字-Socket网络编程3

Socket套接字的目的是将TCP/IP协议相关软件移植到UNIX类系统中。设计者开发了一个接口,以便应用程序能简单地调用该接口通信。这个接口不断完善,最终形成了Socket套接字.Linux系统采用了Socket套接字,因此,Socket接口就被广泛使用,到现在已经成为事实上的标准。与套接字相关的函数被包含在中。通过上面的描述可知,套接字对于程序员来说就是一套网络通信的接口,使用这套接口就可以完成网络通信。和。。

2023-12-01 18:25:37 1303

原创 我的创作纪念日

在csdn500多天来的创作中,我收获了不少粉丝以及文章的阅读量,这些都是我持续创作的动力。我最初走入技术的世界,是因为对计算机科学的热爱和对技术创新的向往。小时候,我对计算机产生了浓厚的兴趣,主要还是想打电脑上的游戏哈哈,渴望深入了解计算机是如何运作的。这一过程不仅丰富了我的技术知识,而且与我的工作和学习形成了有机的关系,通过创作 CSDN 博客,我深刻体会到了“学而时习之”的真谛。我已经大三了,希望接下来找到一个合适的实习机会,继续丰富、提高自己的基础知识在明年的秋招中给自己一个满意的答复。

2023-12-01 15:24:42 371

原创 100.有序数组的平方(力扣)

用于存储每个元素的平方值,并且设置其大小为数组的长度。所指元素的平方值的大小。将较大者的平方值存储到新数组。中每个元素的平方值,并且按照从小到大的顺序排列。,计算每个元素的平方值,并将其存储到新数组。进行排序,以得到按平方值排序后的结果。循环)进行遍历,循环条件是。在每一次循环中,比较左指针。所指元素的平方值与右指针。),用于存储下一个平方值。在每一步迭代中,新数组。使用循环遍历原始数组。

2023-12-01 15:00:27 407

原创 99.套接字-Socket网络编程2 (网络协议)

网络协议就是一组网络规则的集合,是我们共同遵守的约定或标准。常见的协议:◼ HTTP:超文本传输协议◼ FTP: 文件传输协议◼ TELNET : 是 internet 远程登陆服务的标准协议。◼ TCP : 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议◼ UDP :用户数据报协议◼ IP : Internet Protocol 简称 IP,又译为网际协议或互联网协议。

2023-11-30 19:33:25 945

原创 98.套接字-Socket网络编程1(基础概念)

OSI模型,也称为 ISO 模型,是一个由国际标准化组织(ISO)制定的概念性网络体系结构,用于定义和理解计算机网络中不同层次之间的交互。该模型划分了网络功能到七个不同的抽象层次,每个层次执行特定的功能,并且层次之间通过定义好的接口进行通信。知名端口的范围是 0 到 1023,它们通常与常见的服务关联,例如 HTTP(端口 80)、HTTPS(端口 443)、FTP(端口 21)等。端口的概念是在传输层(通常是 TCP 或 UDP 协议)中定义的。在传输层,端口与 IP 地址一起用于唯一标识网络中的进程。

2023-11-30 15:40:58 1424

原创 97.STL-查找算法 find

如果你在一个包含自定义类型的容器中查找元素,需要确保自定义类型有相应的比较方式,通常通过重载。

2023-11-29 22:11:50 508

原创 96.STL-遍历算法 transform

transform是 C++ 标准模板库(STL)中的一个算法,用于对一个范围内的元素进行转换并将结果存储到另一个范围。transform。

2023-11-28 22:37:32 516

原创 95.STL-遍历算法 for_each

算法主要是由头文件 组成。 是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 体积很小,只包括几个在序列上面进行简单数学运算的模板函数 定义了一些模板类,用以声明函数对象。

2023-11-27 23:33:07 524

原创 94.STM32外部中断

NVIC是一种中断控制器,主要用于处理 ARM Cortex-M 微控制器的中断管理。NVIC 负责处理中断优先级、中断向量表以及中断使能和禁止等任务。NVIC 维护了中断向量表,其中包含了中断服务程序的入口地址。当中断发生时,CPU会根据中断号(或中断向量)在中断向量表中查找相应的中断服务程序的入口地址。NVIC 允许为每个中断配置优先级。这些优先级决定了中断在系统中的响应顺序。Cortex-M架构中,中断优先级通常是基于位宽的,较低位的值表示较高的优先级。

2023-11-27 21:32:30 989

原创 93.STL-系统内置仿函数

目录 算术仿函数关系仿函数 逻辑仿函数 C++ 标准库中提供了一些内置的函数对象,也称为仿函数,它们通常位于 头文件中。以下是一些常见的系统内置仿函数: 写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

2023-11-22 22:41:03 283

原创 92.Linux的僵死进程以及处理方法

僵死进程是指一个子进程在父进程之前结束,但父进程没有正确地等待(使用wait或waitpid等系统调用)来获取子进程的退出状态。当一个进程结束时,它的退出状态会一直保存,直到父进程通过适当的系统调用来获取它。如果父进程没有获取子进程的退出状态,那么子进程就会变成僵死状态。我们的程序在退出的时候:return 0,exit(0),之类的,这个0就是退出码,状态信息,这个东西存储在当前进程的PCB中,会有一个整型值来存储退出码。

2023-11-16 17:09:49 234

原创 91.移动零(力扣)

协同工作,将数组中的所有零元素移动到数组的末尾,同时保持其他非零元素的相对顺序。这样做的效果是将非零元素移动到左指针的位置。上述代码的思想是使用双指针法,通过一个左指针(,以便为下一个非零元素找到位置。如果右指针指向的元素不是零(),表示找到了一个非零元素。执行交换操作:交换左指针。重复上述步骤,直到右指针。

2023-11-15 23:13:25 209

原创 90.STL-谓词的使用

在C++中,谓词(Predicate)是指一种能够判断某个条件是否满足的可调用对象,通常是函数或者函数对象。谓词通常用于算法中,用于指定某种条件或规则,例如在排序、查找、删除等算法中指定元素的判定规则。概念:返回bool类型的仿函数称为谓词如果operator()接受一个参数,那么叫做一元谓词如果operator()接受两个参数,那么叫做二元谓词。

2023-11-15 20:46:28 187

原创 89.STL-函数对象的使用(仿函数)

函数对象是C++中的一种编程概念,也称为函数符或仿函数。其实就是重载“()”操作符,使得类对象可以像函数那样调用。 3.代码示例 写在最后:以上就是本篇文章的内容了,感谢你的阅读。如果感到有所收获的话可以给博主点一个赞哦。如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

2023-11-12 22:43:58 197

原创 88.Linux系统下关于fork的经典练习

输出6个A 根据代码段仔细执行,注意for循环的i的值即可得出答案。

2023-11-11 10:18:23 85

原创 87.有效的完全平方数(力扣)

这个算法充分利用了二分查找的思想,通过逐步缩小搜索范围来确定一个非负整数是否为完全平方数。如果是完全平方数,返回。我在做第一遍的时候,忘记考虑整数溢出的情况,所以应当定义为长整型。这种方法可以高效地解决这一问题,避免了不必要的遍历。循环结束后,如果找到完全平方数,就返回。

2023-11-07 17:32:24 104

原创 86.Linux系统下复制进程fork(逻辑地址和物理地址)

在父子进程的情况下,子进程的物理地址通常会与父进程的不同,因为它们拥有各自的内存空间。原来父进程的pid是5255,子进程是5256,然后接下来把父进程的实体复制一份给子进程,这样,系统中就多出这么一个子进程了。,所以说,哪个进程的fork的返回值是0,这个进程就是子进程,因为fork之后,虽然父子进程执行的代码是同一套,但是有时候我们想让父进程和子进程做不同的事情,我们就写个判断“子进程执行的代码和父进程是一模一样的,父进程做什么,子进程就做什么,唯一不同的是fork的返回值不同。

2023-11-06 22:55:45 119

原创 85.x的平方根(力扣)

这个方法利用了二分查找的思想,通过逐步缩小搜索范围来找到满足条件的整数解,即非负整数。这样可以在较快的时间内找到答案。

2023-11-06 20:15:31 133

原创 84.在排序数组中查找元素的第一个和最后一个位置(力扣)

【代码】84.在排序数组中查找元素的第一个和最后一个位置(力扣)

2023-10-31 18:43:28 193

空空如也

空空如也

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

TA关注的人

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