发布

c/c++

专栏成员
112
文章
15313
阅读量
24
订阅数
【项目】基于Boost自主实现搜索引擎
  可以看出原始html文件中有很多特定的标签,为了方便我们查找与阅读,我们需要对其进行去标签化;   因为我们期望查找后返回给我们的格式是类似于百度等搜索引擎返回的格式,大致包含以下三个部分:   1. 标题   2. 内容   3. 网址URL
大耳朵土土垚
2025-02-26
680
【Linux】应用层自定义协议与序列化
  定义结构体来表示我们需要交互的信息; 发送数据时将这个结构体按照一个规则转换成字符串, 接收到数据的时候再按照相同的规则把字符串转化回结构体; 这个过程叫做 “序列化” 和 “反序列化”。
大耳朵土土垚
2025-02-16
690
【Linux】Socket编程—TCP
  下面介绍程序中用到的 socket API,这些函数都在 sys/socket.h 中。
大耳朵土土垚
2025-02-15
880
【Linux】Socket编程—UDP
  上述echo server仅仅是将收到的消息回显给客户端,其实我们还可以在服务器中加一点业务处理,比如翻译功能。
大耳朵土土垚
2025-02-10
510
【Linux】线程池封装与介绍
  之前我们实现了线程、互斥量、条件变量以及日志的封装,现在我们可以基于以上内容来封装一个线程池。
大耳朵土土垚
2025-02-05
550
【Linux】线程互斥与同步
  有时候,很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互。然而多个线程并发的操作共享变量,会带来⼀些问题。
大耳朵土土垚
2025-02-02
840
【Linux】日志设计模式与实现
  IT行业这么火, 涌入的人很多. 俗话说林子大了啥鸟都有. 大佬和菜鸡们两极分化的越来越严重. 为了让菜鸡们不太拖大佬的后腿, 于是大佬们针对⼀些经典的常见的场景, 给定了⼀些对应的解决⽅案, 这个就是设计模式。   在IT行业中,设计模式(Design Patterns) 是一套被广泛认可的、用于解决软件设计中常见问题的最佳实践。它们提供了一种标准化的方法来处理特定的设计问题,并且可以帮助开发人员编写更清晰、更具可维护性的代码。
大耳朵土土垚
2025-02-02
610
【Linux】线程概念与控制
  在⼀个程序里的⼀个执行路线(或者叫执行流)就叫做线程 (Thread)。更准确的定义是:线程是“⼀个进程内部的控制序列”。线程(Thread)是操作系统能够进行运算调度的最小单位,它比进程更小,是进程内的一个执行单元,也是进程内的实际运作单位。一个线程可以执行某个程序段,或是在给定的数据集上运行一段程序。线程有时被称为轻量级进程(lightweight process),因为它们与同一进程中的其他线程共享资源(如内存地址空间、文件描述符等),这使得线程之间的切换和通信相比于进程来说更加高效。
大耳朵土土垚
2025-01-24
770
【Linux】进程信号
Linux进程信号是一种进程间通信的机制,它允许一个进程通知另一个进程某个事件已经发生。以下是关于Linux进程信号的详细介绍:
大耳朵土土垚
2024-12-24
1110
【Linux】进程间通信——System V共享内存
  System V是一种在Linux系统中用于进程间通信(IPC)的机制。它提供了几种不同的通信方式,包括共享内存、消息队列和信号量。以下是关于Linux进程间通信System V共享内存的详细解释:
大耳朵土土垚
2024-12-09
1370
【Linux】进程间通信——命名管道
  匿名管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。如果我们想在不相关的进程之间交换数据,可以使用命名管道来做这项工作。   在Linux系统中,命名管道(也称为FIFO,First In First Out)是一种特殊的文件类型,它允许进程间进行通信。与匿名管道不同,命名管道存在于文件系统中,并且可以被任何有适当权限的进程访问。命名管道提供了一种方法,使得不相关的进程能够通过预先定义好的路径来交换数据。
大耳朵土土垚
2024-12-04
1370
【Linux】匿名管道通信场景——进程池
  进程池的实现是依靠匿名管道,通过进程间通信使得父进程能够管理多个进程任务,相当于父进程拥有了很多个进程——进程池,通过不同的进程完成指定的任务。   所以我们需要创建多个匿名管道和子进程,进行进程间通信,发送信息给子进程让它们根据接收到的信息处理相关任务。   因为有多个管道和子进程,为了方便父进程使用不同管道发送对应信息给子进程,我们需要将管道的文件描述符以及对应子进程的pid保存起来,我们选择将它们封装在一个Channel类中。又因为有多个匿名管道和子进程,所以将多个Channel类对象储存在C++STL中的容器vector中来方便父进程进行管理进程池。
大耳朵土土垚
2024-12-02
1020
【Linux】进程间通信——匿名管道
💥进程具有独立性,所以不同进程间通信该如何通信呢?   进程间进行通信,首先需要让不同的进程看到同一份资源(某种形式的内存空间),并且因为进程具有独立性的特性,一个进程不能在另一个进程中操作某种资源,所以该资源的提供者不能是进程,只能是操作系统,这也是进程间通信的核心。
大耳朵土土垚
2024-11-21
1150
【Linux】ELF可执行程序和动态库加载
  Linux操作系统上的可执行文件格式是ELF(Executable and Linkable Format)。ELF是一种灵活的、可扩展的文件格式,用于存储可执行程序、共享库和目标文件等二进制文件。
大耳朵土土垚
2024-11-15
1310
【Linux】软硬链接和动静态库
  在Linux系统中,文件链接分为两种类型:硬链接(Hard Link)和软链接(也称为符号链接或Symbolic Link)。它们都是用于创建文件的额外入口点,但是工作原理和使用场景有所不同。
大耳朵土土垚
2024-11-10
1560
【Linux】理解文件系统
  磁盘是一种用于存储数据的媒介。具体来说,磁盘是由一个或多个圆盘组成的,每个圆盘都包含一个或多个磁性表面。通过将数据以磁性方式写入磁盘表面,可以将数据存储在其中。
大耳朵土土垚
2024-11-07
1150
【Linux】第一个小程序——进度条实现
  我们之前学习过vim编辑器、gcc/g++的使用和make/makefile工具,所以今天我们就可以使用它们创建Linux上第一个小程序——进度条。在实现进度条之前我们首先需要补充两个小知识。
大耳朵土土垚
2024-10-03
1480
【Linux】项目自动化构建工具-make/Makefile 详解
  在Linux及类Unix系统中,自动化构建项目是提高开发效率、减少重复劳动的关键环节。make工具及其配置文件Makefile是实现这一目标的重要工具组合。它们通过定义一系列规则和依赖关系,自动执行编译、链接等构建过程,确保软件项目能够高效、准确地构建。
大耳朵土土垚
2024-09-27
3080
【Linux】深度解析与实战应用:GCC/G++编译器入门指南
  在Linux系统中,GCC(GNU Compiler Collection)是极其重要且广泛使用的编译器,它支持多种编程语言,包括C、C++、Objective-C、Java、Fortran等。GCC以其高效、灵活和跨平台的特点赢得了开发者的青睐。本文将详细介绍GCC中的C编译器gcc和C++编译器g++的基本使用方法和编译过程。
大耳朵土土垚
2024-09-25
2180
【Linux 】开发利器:深度探索 Vim 编辑器的无限可能
  Vim是一款强大的文本编辑器,常用于在终端环境下编辑文本文件。Vim有多种工作模式,包括普通模式、插入模式、可视模式等12种模式。其中,我们需要掌握三种最常用的模式,分别是命令模式(Normal mode)、插入模式(Insert mode)和底行模式(last line mode)。
大耳朵土土垚
2024-09-24
1200
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档