自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

七月.cc的博客

在学习中进步!!

  • 博客(74)
  • 收藏
  • 关注

原创 [C++项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍...

虽然Boost库现在实现了站内搜索功能. 但那是全局的搜索, 还是非常的杂乱. 本项目实现对Boost库文档的搜索.

2023-08-02 16:32:19 2816 2

原创 【程序员的自我修养】[动态图文] 理解编译到链接的过程 [编译与链接一]

程序的编译及链接在学习C语言的过程中,每一个 .c 文件都会经过编译链接等预处理操作才能成为一个 .exe 的可执行文件这些从 .c 源文件到 .exe 文件的大致变化过程的,就是本篇文章的内容

2022-04-07 10:07:22 5428 75

原创 【程序员的自我修养】[动态图文] 超详解函数栈帧

程序运行背后的机制和由来,可以看作是程序员的一种“自我修养”。------ 程序员的自我修养 “链接、装载与库”栈与栈帧什么是栈?

2022-04-05 17:21:13 7345 68

原创 [Linux] TCP协议介绍(3): TCP协议的“四次挥手“过程、状态分析...

TCP协议是面向连接的, 面向字节流的, 可靠的 传输层协议...

2024-06-16 16:29:48 1095 3

原创 [Linux] TCP协议介绍(2): TCP协议的“三次握手“过程分析、超时重传机制介绍...

TCP协议是面向连接的, 面向字节流的, 可靠的 传输层协议...

2024-06-16 16:29:03 1131 4

原创 [Linux] TCP协议介绍(1): TCP协议 数据格式、可靠性的控制、标记位... 简单介绍

TCP协议是面向连接的, 面向字节流的, 可靠的 传输层协议...

2024-06-16 16:28:11 731

原创 [Linux] UDP协议介绍:UDP协议格式、端口号在网络协议栈那一层工作...

本篇文章, 简单介绍UDP协议的相关内容

2024-06-16 16:27:08 854 1

原创 [Linux] 一文理解HTTPS协议:什么是HTTPS协议、HTTPS协议如何加密数据、什么是CA证书(数字证书)...

由于 HTTP 的不安全, 所以才出现了 HTTPS 协议.

2024-01-07 16:58:35 1182

原创 [C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...

本篇文章 介绍如何使用cpphttplib 将已经完成的后端工作, 部署到网络中. 并实现页面的制作以及 Boost库文档搜索引擎服务器的部署.

2023-08-08 17:54:15 1608 1

原创 [C++项目] Boost文档 站内搜索引擎(4): 搜索的相关接口的实现、线程安全的单例index接口、cppjieba分词库的使用、综合调试...

本篇文章的内容为: 查找、搜索 相关接口的实现, 建立索引接口的相关优化, 本地搜索测试. 做完上面的内容, 就后面就是加入网络和页面的制作了~

2023-08-07 17:12:13 1069

原创 [C++项目] Boost文档 站内搜索引擎(3): 建立文档及其关键字的正排 倒排索引、jieba库的安装与使用...

Boost文档 站内搜索引擎: 上一篇文章实现了parser模块 对文档html文件清理. 本篇文章实现根据清理汇总的文档内容 建立正排索引 和 倒排索引的相关接口.

2023-08-03 21:18:45 1771

原创 [C++项目] Boost文档 站内搜索引擎(2): 文档文本解析模块parser的实现、如何对文档文件去标签、如何获取文档标题...

从本篇文章开始, Boost文档 站内搜索引擎项目, 就正式开始编写代码了. 本篇文章所写的内容是 parser 文档文本解析器模块

2023-08-02 23:58:39 2112

原创 [Linux] 一文理解HTTP协议: 什么是url、http协议的请求和响应格式、如何响应文本或文件、http协议的GET和POST以及其他方法、状态码、重定向、什么是Cookie...

应用层协议实际是规定应用层在传输数据时需要遵循的一系列规则和标准. 本文的内容就是介绍一个非常重要的应用层协议 -- HTTP协议

2023-08-01 14:53:02 171

原创 [Linux] 初识应用层协议: 序列化与反序列化、编码与解码、jsoncpp简单使用...

有关Linux网络, 之前的文章已经简单演示介绍了UDPTCP套接字编程之前用的所有接口:soket()bind()listen()connect()accept()实际上都是系统调用, 都属于应用层的一部分, 是传输层提供给应用层接口而之前文章中实现的服务器客户端进行字符串通信, 实际上就是实现了应用层的内容虽然在二十一世纪的今天, 已经指定有了有非常多的应用层协议:HTTPHTTPSDNSFTP。

2023-07-26 15:14:33 451

原创 [Linux] CentOS7 中 pip3 install 可能出现的 ssl 问题

执行pip3 install, 可能会警告 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

2023-07-21 01:41:59 2068 1

原创 [Linux] 守护进程介绍、服务器的部署、日志文件...

我们使用的系统中, 一般以服务器的方式工作 对外提供服务的服务器, 都是以守护进程的方式在系统中工作的比如, 我们使用Linux服务器时, 大多都会使用一些终端软件通过ssh远程连接服务器使用守护进程, 一旦启动之后. 除非用户手动关闭, 否则不会被关闭 会一直运行

2023-07-18 17:03:11 595

原创 [Linux] 网络编程 - 初见TCP套接字编程: 实现简单的单进程、多进程、多线程、线程池tcp服务器

UDP和TCP的部分特点. 最主要的区别就是: 1. UDP非连接, 面向数据包2. TCP连接, 面向字节流所以, TCP多了三个用于连接的接口: connect()、listen()和accept() 这三个接口具体怎么使用, 下面实现简单的TCP网络通信时 介绍一下.

2023-07-15 23:43:29 556

原创 [Linux] 最基础简单的线程池 及其 单例模式的实现

什么是线程池?线程池一种线程使用模式. 我们知道, 线程的创建、调度、销毁都是需要消耗资源的. 也就是说 线程过多会带来调度开销, 进而影响缓存局部性和整体性能.而线程池维护着多个线程, 这些线程等待着被分配可并发执行的任务. 这避免了在处理短时间任务时创建与销毁线程的代价.说简单点, 就是 线程池维护着多个线程, 这些线程都可以随时被调度、随时被派发任务, 不用在任务需要派发时再创建线程, 而是在需要派发任务时 可以直接调度线程池内的线程, 执行任务

2023-07-13 16:57:14 1168

原创 [C++] C++特殊类设计 以及 单例模式:设计无法拷贝、只能在堆上创建、只能在栈上创建、不能继承的类, 单例模式以及饿汉与懒汉的场景...

设计模式 实际是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结使用设计模式有很多的优点: 首先就是 提供了一种标准化的思考方式, 可以帮助开发者更好地理解、分析和解决软件设计问题设计模式还可以提高代码的可读性、可维护性和可扩展性, 使软件更易于维护和更新...被人熟知的设计模式有 23种, 不过本篇文章只介绍一种: 单例模式那么, 究竟什么是单例模式呢?

2023-07-12 10:51:51 1036

原创 [C++] C++新的类型转换方式介绍: C语言类型转换介绍、static_cast、reinterpret_cast、const_cast、dynamic_cast、RTTI介绍

C语言中 的类型转换可视性比较差, 所有的转换形式都是以一种相同形式书写, 难以跟踪错误的转换. C++则针对不同场景实现了4种不同的类型转换...

2023-07-11 10:41:00 176

原创 [C++] C++智能指针原理分析 介绍: RAII思想、智能指针原理、unique_ptr、shared_ptr、weak_ptr分析及模拟、与boost库中智能指针的关系...

C++引入了异常处理的概念之后, 内存泄露的问题就变得更加防不胜防了. 而 智能指针的出现 大大缓解了内存泄漏出现的频率...

2023-07-10 17:55:23 133

原创 [C++] 万字 - C++异常处理分析介绍: 异常概念、异常抛出与捕获匹配原则、重新抛出、异常安全、异常体系...

C语言程序发生错误, 很可能会直接导致程序退出. 而C++引进了 异常的概念, 可以更灵活更快速的 排查处理错误...

2023-07-09 00:14:28 1120

原创 [C++] C++11新特性介绍 分析(2): lambda表达式、function包装器、bind()接口

本篇文章继续介绍 分析C++11常用的新特性, 本篇介绍的内容有: lambda表达式、function包装器等

2023-07-07 12:05:15 300

原创 [C++] C++11新特性分析介绍(1): 列表初始化、右值引用、完美转发、移动语义...

本篇文章是关于C++11标准 一些常用的新特性的介绍, 比如: 列表初始化、右值引用、万能引用、完美转发、移动语义 和 可变参数列表等

2023-07-07 09:04:43 225

原创 【Linux】网络编程相关概念介绍、UDP套接字简单演示、最简单的UDP公共聊天室实现~

本篇文章正式开始Linux中的网络编程. 本文介绍了, 网络编程的一些概念, 以及简单的UDP套接字编程. 实现了最简单的UDP公共聊天室

2023-07-03 01:17:58 265

原创 【Linux】网络相关概念概述以及原理简单分析介绍

本篇文章首次接触网络, 将简单介绍一下网络的相关概念以及网络通信原理的简单理解

2023-07-03 01:10:24 362

原创 【Linux】线程同步分析:什么是条件变量?生产者消费者模型是什么?POSIX信号量怎么用?阻塞队列和环形队列模拟生产者消费者模型

在线程只使用互斥的方式去访问临界资源时, 就有可能造成线程饥饿的情况.那么 有没有一种可能, 可以让所有线程像排队一样, 一个一个地访问临界资源. 当一个线程访问完临界资源后, 再重新去队尾排队呢?

2023-04-21 18:41:53 443

原创 【Linux】线程互斥详解:多线程会有什么问题?什么是互斥锁?C++怎么封装使用互斥锁?

多线程可以提高程序的并发性和运行效率,充分利用计算机的多核资源. 但是, 多线程也可能会导致输出混乱、访问共享资源混乱、竞争等问题. 接下来我们就尝试解决这些问题

2023-04-17 21:13:12 783

原创 【Linux】线程控制分析:如何获取线程ID?线程如何自动回收?

我们知道, 进程有自己相关控制接口, 等待、创建等而线程作为轻量级的进程, 其实也是有控制接口的.

2023-04-15 17:18:46 1721

原创 【Linux】页表的深入分析

简单的说, 页表是进程地址空间和物理内存之间的相互映射但页表却并非一句话可以概括这么简单

2023-04-14 15:29:34 1211

原创 【Linux】线程概念详析

线程可以说是实际区别于进程的一个概念, 但也可以说是实际没有区别于进程的一个概念.而实际区别与否, 其实 与平台有关

2023-04-14 15:27:45 419

原创 【Linux】一篇文章, 掌握Linux进程信号

进程信号, 在Linux系统的学习中, 是一个非常重要的概念和知识.我们可以通过向进程发送信号来让进程执行某些指定的动作.

2023-04-08 16:39:35 517

原创 【Linux】[万字] 详解 System V: 共享内存原理、创建及使用

我们知道, 进程间通信的前提是:先让不同的进程看到同一份资源Linux的管道通信给进程间看到的同一份资源是:管道文件而 共享内存 给进程间看到的同一份资源是:物理内存

2023-04-03 11:41:04 1657

原创 【Linux】[万字] 详解 Linux管道通信:匿名管道、命名管道的原理及使用等

管道, 是Unix中最古老的进程间通信的方式管道, 其实就是 一个进程连接到另一个进程的数据流. 就像我们生活中, 管道是输送资源的:石油、天然气等而系统中的管道, 则是输送数据的.那么管道究竟是什么?管道, 其实是 一个打开的文件. 但是这个文件很特殊.

2023-04-02 14:34:39 1795

原创 【Linux】详析动、静态库原理、创建与使用

在Linux环境下, 我们使用gcc编译链接代码文件时, 可以统分为 静态链接和动态链接静态链接:在编译链接时, 将代码所使用到的静态库文件的代码全部加入到可执行文件中, 此时的可执行文件会生成的比较大. 不过, 此时可执行文件再运行时, 就不需要再查找库了. 静态库文件一般以 .a 结尾动态链接:不会在编译链接时将动态库文件的代码加入到可执行文件中, 而是在可执行文件运行时, 去查找所需动态库, 并将其加载到相应的进程中. 并且不同进程可以共享这些动态库. 动态库文件一般以 .so 结尾

2023-04-01 09:47:14 1166

原创 【Linux】[万字] 详析 Linux磁盘文件管理系统、文件inode以及 软硬连接

Linux的文件操作, 都是从内存文件进行操作, 即都是对打开的文件进行操作的.但是, 我们的操作系统中并不是只有内存文件的, 甚至可以说. 这些文件一般都静静的在磁盘中存储着, 所以也被称为 磁盘文件. 本篇文章的主要内容就是介绍Linux的文件系统是怎么管理磁盘文件的.

2023-03-30 09:45:00 484 2

原创 【Linux】[万字] 详析 Linux下的 文件重定向 以及 文件缓冲区

简单的来讲,文件缓冲区其实就是一块内存空间这块空间是用来, 存储 向系统内核中写入的数据 的. 只有在刷新文件缓冲区时, 文件缓冲区内的数据才会写入系统内核中。

2023-03-29 12:30:00 815

原创 【Linux】教你实现一个简单的、属于自己的Shell

我们在Linux中使用的shell, 一般有两个 bash 和 zsh.我们可以通过shell, 执行各种命令. 而本篇文章的主要内容, 就是实现一个简易的shell

2023-03-28 17:52:36 4008

原创 【Linux】[万字] Linux下的文件操作 及 Linux文件描述符fd 详解

在Linux操作系统中, 文件描述符 是一个至关重要的概念.理解了文件描述符, 其实就可以相当于理解了 Linux系统的关于内存文件系统的整个大致框架和逻辑但是在介绍文件描述符之前, Linux关于文件还存在许多 概念和文件操作 的知识需要介绍一下, 就当作是为解释文件描述符所做的准备吧

2023-03-27 17:55:03 903

原创 【Linux】[万字] 详析进程控制:fork子进程运行规则?怎么回收子进程?什么是进程替换?进程替换怎么操作?

我们都知道, 用fork()创建出来的子进程是与父进程共享代码和数据的. 子进程执行的也只是父进程的代码片段.那么当我们需要让创建出来的子进程执行其他程序的代码, 需要怎么做呢?让一个进程执行其他程序的代码, 即进程替换, 不单是子进程, 当前进程也可以发生进程替换.

2023-03-24 10:31:15 455

CentOS7.6从零搭建C\C++开发环境 所需资源包

CentOS从零搭建C\C++开发环境的所需要的资源包 此资源包包括: gcc 11.2.0 gdb 11.1 llvm+clang 12.0.0 python 3.8.1 neovim 0.7.2 cmake 3.23.2 node 16.9.1

2023-03-21

C++ - SGI 版本 STL源码

C++ SGI版本的STL(标准模板库) 源码 在网上找了很久没有找到直接打包的STL源码, 就打包了一下发出来了 SGI版本的,比较容易阅读 可读性还可以有需要的可以拿走

2022-10-25

空空如也

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

TA关注的人

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