自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

To learn, to engage.

Persistence

  • 博客(28)
  • 问答 (6)
  • 收藏
  • 关注

原创 红黑树的C语言简单实现与代码解析

红黑树是计算机科学中一种重要的自平衡二叉搜索树。它确保了在最坏情况下,基本的动态集合操作(如插入、删除和查找)具有对数时间复杂度。

2023-12-23 23:06:17 798 1

原创 C语言实现堆

在 C 语言中,实现一个堆通常涉及使用动态内存分配来存储和管理数据。

2023-12-23 22:34:12 363

原创 原子操作实现自旋锁

自旋锁是计算机科学中用于同步多个执行线程或进程的机制之一。与互斥锁(mutex)相似,自旋锁的目的也是为了防止多个线程同时访问临界资源。但是,与互斥锁不同的是,当自旋锁的临界资源被其他线程锁定时,尝试获取锁的线程不会立即进入阻塞状态,而是会持续地“自旋”等待,直到该锁变为可用状态。自旋锁是一种同步机制,用于在多线程或多处理器环境中保护临界资源。尽管它在某些情况下可以提供低延迟和高性能,但也需要注意其可能导致的 CPU 争用和不适合长时间临界区的限制。因此,在选择使用自旋锁时,应该考虑应用的具体需求和场景。

2023-12-22 00:20:18 565

原创 原子操作:计算机科学中的基石

原子操作是一个不可分割的操作序列,这意味着它要么完全执行,要么完全不执行。这样可以确保在并发环境中,操作不会被其他任务或线程中断,从而防止数据不一致或其他潜在的并发问题。原子操作是计算机科学中的一个基础概念,它确保在多任务和多线程环境中的操作是不可中断的。通过使用原子操作,可以避免数据的不一致性、竞态条件和其他并发问题,从而确保程序的正确性和预期行为。在数据库管理、操作系统内核和并发编程等多个领域都广泛应用了原子操作,证明了其在现代计算机系统中的重要性和必要性。

2023-12-22 00:19:21 428

原创 ARM 汇编入门

ARM 汇编语言是 ARM 架构的汇编语言,用于直接控制 ARM 处理器。虽然现代软件开发更多地依赖于高级语言和编译器,但理解 ARM 汇编仍然对于深入了解系统、优化代码和进行低级调试非常重要。

2023-12-21 00:20:24 987

原创 Ubuntu操作系统的全面指南:使用方式及常用命令介绍

熟悉Ubuntu的基本使用方式和一些核心命令是开始Linux之旅的关键。本指南将为您提供Ubuntu操作系统的深入了解,包括其基本使用方法和常用命令。

2023-12-21 00:06:57 1971

原创 深入探讨 Linux 内核与 U-Boot 的内存管理

Linux 内核的内存管理是操作系统的关键组成部分,负责有效地管理系统内存资源。

2023-12-20 00:15:00 439

原创 深度解析objdump:探索二进制文件的奥秘

objdump是GNU Binutils工具集中的一个工具,用于分析目标文件(object file)和可执行文件(executable file)。它可以显示二进制文件的汇编代码、符号表、段信息等,是理解程序底层实现、调试和逆向工程的有力助手。objdump是一个强大的二进制文件分析工具,通过它,我们可以深入了解程序的底层细节,有助于调试、逆向工程和优化。在实际应用中,结合上述命令和场景,你可以更好地利用objdump来探索和理解二进制文件的奥秘。

2023-12-20 00:09:16 602

原创 深度解析C语言链接器:编织代码的魔法之舞

在代码编写完成后,各个模块的地址可能分散在内存的不同位置。链接器的任务之一就是通过地址重定位,将这些分散的模块整合到正确的内存地址上。连接器在程序调试中也发挥着关键作用。在软件开发的舞台上,C语言连接器如同一位巧妙的编舞家,默默地将代码的各个部分串联成一场优美的演出。首先,连接器进行符号解析,识别并处理代码中的符号,包括函数和变量等。我们将深入研究库链接的细节,包括静态链接和动态链接,以及库的加载和运行时解析。通过深度解析C语言连接器,我们将更好地理解这位编舞家在代码舞台上的不可替代的角色。

2023-12-20 00:02:38 415

原创 GitHub 工作流配置详解

在本博客中,我们将深入了解 GitHub Actions,这是 GitHub 提供的一种强大的工作流配置工具,以及如何在你的项目中配置自定义的工作流。

2023-12-19 00:15:00 506

原创 深入解析 xargs 命令:强大的命令行辅助工具

可以使用xargs执行自定义的脚本,例如批量处理文件。在这个例子中,是一个自定义的脚本,接受一个文件名作为参数。

2023-12-19 00:15:00 406

原创 配置 GitHub 项目的 Labeler:自动管理标签的利器

Labeler 可以根据自定义规则,自动为新提交的 Pull Request(PR)或 Issues 添加标签。这有助于更好地组织和管理项目的任务,提高团队的协作效率。

2023-12-18 01:00:24 449

原创 深度解析 awk 命令:文本处理的得力助手

awk 是一种强大的文本处理工具,被广泛用于数据提取、格式化和报告生成。

2023-12-18 00:53:40 782

原创 深入了解 sed 命令:高效文本处理的瑞士军刀

sed 命令的使用方法以及一些实际场景中的应用

2023-12-18 00:44:41 753

原创 GDB 进阶:深入调试技术

GDB 调试技术

2023-12-17 23:57:34 406

原创 qsort函数

简单介绍 qsort 函数的使用方法

2023-04-13 00:27:50 120 1

原创 Manacher Algorithm(马拉车算法理解)

对于Manacher(马拉车)算法的理解

2023-03-21 12:31:52 201

原创 C/C++可变参数列表参数处理方法va_list、va_start()、va_copy()、va_arg()、va_end()

C/C++可变参数列表的处理方法

2022-07-12 18:05:22 1778

原创 make工具与makefile介绍

简单介绍make工具并介绍Makefile的语法规则和使用方式

2022-04-06 14:26:57 802

原创 memcpy_s这类安全函数使用介绍(来自安全 C 库: Safe C Library )

由memcpy_s引出对这类安全函数的介绍,并简单介绍其使用方式

2022-03-31 10:57:44 23669 7

原创 使用C++编写Python扩展

使用扩展的方式调用 C++ 函数,更容易防止两种程序空间使用出现冲突。

2022-03-29 20:06:43 3776 1

原创 Mac中编译C++程序出现Undefined symbols for architecture arm64、ld: symbol(s) not found for architecture arm64

1.问题描述问题背景:  在 Mac 中,想将 C++ 程序编译成一个动态库,使用 cc 进行编译(有些时候编译简单的 C++ 程序也遇到过)。使用命令如下:cc -fPIC -shared -o encrypt_for_python.so encrypt_for_python.cpp -L/path/to/lib -I/path/to/include -std=c++11结果:Undefined symbols for architecture arm64: "___gxx_person

2022-03-02 22:37:58 10596

原创 git分支管理

介绍了一些简单的Git命令

2022-02-27 12:39:49 196

原创 软件指令集构架不兼容出现问题 Symbol not found: _PQbackendPID

不同指令集构架的软件配合使用时出现问题

2022-02-26 15:42:58 3564

原创 Python迭代器、生成器、map以及reduce

介绍Python迭代器和生成器,map以及reduce

2022-01-21 02:24:26 912

原创 Python切片

介绍Python切片的概念以及切片的使用

2022-01-18 02:43:18 526

原创 Git入门

Git工具的常用命令

2022-01-15 01:08:04 517

原创 Mac终端配置环境变量(Mac、Linux操作系统通用)

关于终端环境变量设置

2021-07-12 23:14:10 5001

空空如也

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

TA关注的人

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