自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Http协议介绍

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的,用于在客户端(如浏览器)和服务器之间传输超文本(如网页)数据。它是万维网(WWW)数据通信的基础,设计简单灵活,支持多种数据格式的传输。默认不记录之前的请求或会话信息(后续可通过CookieSession等技术实现状态管理)。客户端发送请求(Request),服务器返回响应(Response如GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。

2025-04-09 19:53:21 506

原创 Crow介绍及使用

帮助开发者更高效地处理 HTTP 请求、路由、数据库交互、模板渲染等常见任务,而无需从零开始编写底层代码。

2025-04-08 18:10:07 327

原创 Redis介绍及使用

是一种软件组件,它位于客户端和服务器端应用程序之间,为它们提供通信和管理的桥梁。

2025-04-06 16:09:29 717

原创 Nginx介绍及使用

是一款开源的、高性能的HTTP和反向代理服务器。

2025-04-05 21:17:39 1067

原创 MySQL介绍及使用

MySQL 是一个关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)来管理和操作数据。“关系”在这里指的是二维表格(表 / table),每张表由行(row)和列(column)组成,数据以结构化形式存储。名称说明数据库(Database)数据的集合,一个数据库中可以有多张表表(Table)类似 Excel 表格,用来存储结构化数据行(Row)表中的一条记录,例如一个用户信息列(Column)数据的字段,比如姓名、年龄、邮箱等主键(Primary Key)

2025-04-05 16:32:58 1191

原创 Muduo网络库介绍

开发背景:muduo是陈硕个人开发的TCP网络编程库,主要用于Linux平台。编程模型:它基于Reactor模式,支持多线程。其核心设计是一个线程一个事件循环(one loop per thread),即一个线程只能有一个事件循环(EventLoop),而一个文件描述符(fd)只能由一个线程进行读写。主要特性使用非阻塞IO和事件驱动。提供了线程池(ThreadPool)来处理耗时的计算任务。支持TCP连接的生命周期管理。提供了丰富的回调机制,用于处理连接建立、消息到达、连接断开等事件。适用场景。

2025-04-04 21:42:35 996

原创 IO多路复用

多线程、多进程、IO多路复用IO多路复用(I/O Multiplexing)是一种能够让单个进程或线程同时处理多个I/O操作的技术,常用于网络编程中,尤其是在需要处理大量并发连接时。它的核心思想是通过非阻塞的方式,让程序能够在单一的线程或进程中同时监听多个I/O操作,而不需要为每一个连接创建一个独立的线程或进程。

2025-04-04 13:52:54 644

原创 JSON介绍及使用

JSON(JavaScript Object Notation)是一种轻量级的数据序列化协议,基于文本,完全独立于语言。:用双引号括起来的文本。:整数或浮点数。true或false。:用方括号[]括起来的有序数据集合,数组中的元素可以是任何类型。:用花括号{}括起来的无序键值对集合。:表示空值。

2025-04-04 13:35:27 197

原创 Ubuntu 22.04 | 解决开机卡在 /dev/sda3 : clean

按回车键选择默认的起始扇区和结束扇区。如果要分配全部剩余空间,可以直接按回车键选择默认值。如果没有未分配的空间,可能需要从相邻的分区(如。首先,需要确定是否有未分配的空间可以用于扩展。)中缩小空间来获取未分配的空间。的新大小,确保留出足够的空间给。工具可以进入磁盘操作界面。是磁盘设备文件,表示第一块硬盘。,然后输入要删除的分区编号(如。后会提示输入分区编号,输入。在Linux系统中,使用。,然后输入分区编号(如。,然后指定分区类型(如。选择分区类型(主分区。)、文件系统类型(如。

2025-03-27 21:51:12 252

原创 grpc介绍及使用

service是一个关键字,用于在.proto文件中定义一个服务接口。服务接口是一组远程过程调用(RPC)方法的集合,客户端可以通过这些方法与服务端进行通信。

2025-03-26 13:54:13 750

原创 Qt简明介绍及使用

子类必须继承QObject必须添加Q_Object宏信号函数返回值必须void,信号需要使用signals关键字声明(不需要定义),习惯性在信号函数前添加emit(声明被发送)Q_OBJECTpublic:signals:Q_OBJECTpublic:// 在槽函数中发射另一个信号// 连接信号与槽// 发射信号// 触发slot1,slot1中又发射signal2,触发slot2的派生类中的方法(如rowCountheaderData和data)是由视图(如。

2025-03-25 21:15:06 865

原创 c++基础知识

static关键字在C++中有多种用途,具体作用取决于其使用的上下文:在全局变量和函数中,static限制作用域为文件作用域。在局部变量中,static使变量具有静态存储期,初始化一次,并在函数调用之间保持值。在类成员中,static定义类级别的成员,属于类本身,而不是某个对象实例。在模板类中,static成员变量需要在模板类外部定义和初始化,且所有模板实例共享同一个静态成员变量。在C++17中,成员变量允许在类内直接定义和初始化静态成员变量,简化了语法。一个包含纯虚函数的类被称为抽象类。

2025-03-24 15:05:11 312

原创 操作系统信息

中断是计算机系统中的一种机制,用于通知中央处理器(CPU)发生了需要立即处理的事件。中断可以由硬件设备(如键盘、鼠标、磁盘驱动器等)或软件(如操作系统、运行中的程序)产生。当一个中断发生时,它会打断当前正在执行的程序,让CPU转而处理一个称为中断服务例程(Interrupt Service Routine,ISR)的特殊程序。处理完中断后,CPU通常会返回到被打断的程序继续执行。软中断是 Linux 内核中的一种机制,用于处理一些需要延迟执行的任务,例如网络数据包处理、定时器事件等。

2025-03-24 13:11:26 771

原创 网络通信(c++)

最低位字节存放在内存的最低地址端,最高位字节存放在内存的最高地址端。

2025-03-23 14:03:16 918

原创 多线程和线程同步(c/c++)

POSIX(Portable Operating System Interface)是一个定义了操作系统接口的标准,其中的 POSIX 线程(POSIX Threads,简称 Pthreads)是用于多线程编程的标准化接口。条件变量是多线程编程中用于线程间同步的重要机制,通常与互斥锁配合使用,以实现线程在特定条件满足时的等待和唤醒。如果信号量的值为0,则当前线程阻塞,直到信号量的值大于0。将信号量的值加1,如果有线程正在等待该信号量,则唤醒一个线程。:指向一个指针的指针,用于存储线程的返回值。

2025-03-22 21:32:56 694

原创 protobuf介绍及使用(c++)

proto。

2025-03-20 21:47:04 14

原创 CMake使用

通过设置,你可以让 CMake 在指定的目录中查找自定义模块(如.cmake文件):CMake 提供的变量,表示项目的根目录。# 设置模块路径宏可以用来控制代码的编译过程,使得在编译时可以根据特定的条件包含或排除代码段。这在处理不同平台、编译器或配置选项时非常有用。cpp复制#endif。

2025-03-20 21:25:35 645

原创 有关库的安装

但程序仍然无法加载它,可能是因为动态库的路径没有被系统识别。它会检查系统是否具备编译所需的工具(如 C 编译器)和依赖项。保存并退出后,运行以下命令使配置生效:(手动更新动态库缓存):将程序的可执行文件、库文件和文档等安装到系统中。文件中的指令,编译源代码生成可执行文件。:这是一个脚本,用于检测系统环境并生成。:将编译后的文件安装到系统指定位置。如果找到了该文件,记录下它的路径。:将动态库所在的路径添加到。:生成一个适合当前系统的。:生成编译后的二进制文件。:指定软件安装的根目录。

2025-03-19 16:38:28 222

原创 Bash Shell

Bash Shell 是一种强大的脚本语言,用于编写自动化任务和系统管理脚本。以下是 Bash Shell 语言的基本语法和常用结构,帮助你快速入门。一个 Bash 脚本通常以 Shebang 行开始,后面跟着一系列命令和逻辑结构。 Shebang 行: 或 ,指定脚本的解释器。注释:以 开头,用于说明代码的功能。变量用于存储数据,可以是字符串、数字等。 定义变量:,注意等号两边不能有空格。使用变量:通过 或 引用变量。Bash 脚本可以执行系统命令,并处理命令的输出。

2025-03-19 16:12:31 250

原创 docker知识讲解

Docker 守护进程通过与容器运行时工具(于创建和运行容器的底层工具, 如 runc)和存储驱动(存储驱动是用于管理容器文件系统的组件, 如 OverlayFS)交互,来管理容器的生命周期和文件系统。容器(如 Docker 容器)本身并不拥有完全独立的物理 CPU 和内存资源,但可以通过操作系统的隔离机制(如 Linux 的 cgroups 和 namespaces)来实现资源的隔离和限制,从而让容器在运行时表现得像是拥有独立的资源。镜像是容器的构建基础,容器是从镜像启动的运行实例。

2025-03-18 20:43:43 629

原创 docker使用

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用程序及其依赖项到一个可移植的容器中,然后发布到任何支持 Docker 的平台上运行。

2025-03-18 19:22:36 871

原创 gdb常用命令

在使用GDB之前,需要确保程序在编译时启用了调试信息。对于C/C++程序,可以使用。:设置观察点,当变量值发生变化时暂停程序。命令可以显示当前行附近的源代码。:查看当前函数的局部变量。如果程序需要参数,可以在。是程序的命令行参数。

2025-03-17 17:45:42 255

原创 Lab 11: mmap

【代码】Lab 11: mmap。

2025-03-14 21:35:21 60

原创 github使用

(SSH 密钥是一种用于身份验证的加密密钥对,用于安全地访问远程服务器或服务(如 GitHub、GitLab 等)。创建本地:仓库初始化和推送一个新 Git 仓库到远程 GitHub 仓库。组成,它们共同工作,确保在不暴露密码的情况下进行安全的身份验证。rebase:一个分支的提交历史“重新定位”到另一个分支的顶部。访问github.com使用SSH下的your_file秘钥。

2025-03-14 21:08:10 241

原创 Lab10 File System

【代码】Lab10 File System。

2025-03-11 21:28:54 117

原创 MIT 6.S081 Lab9 Lock

只有一个cpu能进行stealtot= 0test1 OK。

2025-03-09 15:47:21 230

空空如也

空空如也

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

TA关注的人

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