- 博客(28)
- 问答 (6)
- 收藏
- 关注
原创 红黑树的C语言简单实现与代码解析
红黑树是计算机科学中一种重要的自平衡二叉搜索树。它确保了在最坏情况下,基本的动态集合操作(如插入、删除和查找)具有对数时间复杂度。
2023-12-23 23:06:17
1137
1
原创 原子操作实现自旋锁
自旋锁是计算机科学中用于同步多个执行线程或进程的机制之一。与互斥锁(mutex)相似,自旋锁的目的也是为了防止多个线程同时访问临界资源。但是,与互斥锁不同的是,当自旋锁的临界资源被其他线程锁定时,尝试获取锁的线程不会立即进入阻塞状态,而是会持续地“自旋”等待,直到该锁变为可用状态。自旋锁是一种同步机制,用于在多线程或多处理器环境中保护临界资源。尽管它在某些情况下可以提供低延迟和高性能,但也需要注意其可能导致的 CPU 争用和不适合长时间临界区的限制。因此,在选择使用自旋锁时,应该考虑应用的具体需求和场景。
2023-12-22 00:20:18
761
原创 原子操作:计算机科学中的基石
原子操作是一个不可分割的操作序列,这意味着它要么完全执行,要么完全不执行。这样可以确保在并发环境中,操作不会被其他任务或线程中断,从而防止数据不一致或其他潜在的并发问题。原子操作是计算机科学中的一个基础概念,它确保在多任务和多线程环境中的操作是不可中断的。通过使用原子操作,可以避免数据的不一致性、竞态条件和其他并发问题,从而确保程序的正确性和预期行为。在数据库管理、操作系统内核和并发编程等多个领域都广泛应用了原子操作,证明了其在现代计算机系统中的重要性和必要性。
2023-12-22 00:19:21
636
原创 ARM 汇编入门
ARM 汇编语言是 ARM 架构的汇编语言,用于直接控制 ARM 处理器。虽然现代软件开发更多地依赖于高级语言和编译器,但理解 ARM 汇编仍然对于深入了解系统、优化代码和进行低级调试非常重要。
2023-12-21 00:20:24
1185
原创 Ubuntu操作系统的全面指南:使用方式及常用命令介绍
熟悉Ubuntu的基本使用方式和一些核心命令是开始Linux之旅的关键。本指南将为您提供Ubuntu操作系统的深入了解,包括其基本使用方法和常用命令。
2023-12-21 00:06:57
4882
原创 深度解析objdump:探索二进制文件的奥秘
objdump是GNU Binutils工具集中的一个工具,用于分析目标文件(object file)和可执行文件(executable file)。它可以显示二进制文件的汇编代码、符号表、段信息等,是理解程序底层实现、调试和逆向工程的有力助手。objdump是一个强大的二进制文件分析工具,通过它,我们可以深入了解程序的底层细节,有助于调试、逆向工程和优化。在实际应用中,结合上述命令和场景,你可以更好地利用objdump来探索和理解二进制文件的奥秘。
2023-12-20 00:09:16
941
原创 深度解析C语言链接器:编织代码的魔法之舞
在代码编写完成后,各个模块的地址可能分散在内存的不同位置。链接器的任务之一就是通过地址重定位,将这些分散的模块整合到正确的内存地址上。连接器在程序调试中也发挥着关键作用。在软件开发的舞台上,C语言连接器如同一位巧妙的编舞家,默默地将代码的各个部分串联成一场优美的演出。首先,连接器进行符号解析,识别并处理代码中的符号,包括函数和变量等。我们将深入研究库链接的细节,包括静态链接和动态链接,以及库的加载和运行时解析。通过深度解析C语言连接器,我们将更好地理解这位编舞家在代码舞台上的不可替代的角色。
2023-12-20 00:02:38
552
原创 GitHub 工作流配置详解
在本博客中,我们将深入了解 GitHub Actions,这是 GitHub 提供的一种强大的工作流配置工具,以及如何在你的项目中配置自定义的工作流。
2023-12-19 00:15:00
1241
原创 深入解析 xargs 命令:强大的命令行辅助工具
可以使用xargs执行自定义的脚本,例如批量处理文件。在这个例子中,是一个自定义的脚本,接受一个文件名作为参数。
2023-12-19 00:15:00
732
原创 配置 GitHub 项目的 Labeler:自动管理标签的利器
Labeler 可以根据自定义规则,自动为新提交的 Pull Request(PR)或 Issues 添加标签。这有助于更好地组织和管理项目的任务,提高团队的协作效率。
2023-12-18 01:00:24
817
原创 C/C++可变参数列表参数处理方法va_list、va_start()、va_copy()、va_arg()、va_end()
C/C++可变参数列表的处理方法
2022-07-12 18:05:22
2201
原创 memcpy_s这类安全函数使用介绍(来自安全 C 库: Safe C Library )
由memcpy_s引出对这类安全函数的介绍,并简单介绍其使用方式
2022-03-31 10:57:44
28803
7
原创 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
12364
空空如也
()重载后的结构体如何作为函数指针或操作器的形式使用?
2022-09-24
新初始化的vue APP无法通过浏览器使用localhost:8080的方式访问
2022-05-16
Python调用C++动态库函数出现segfault
2022-03-24
C/C++程序编译动态库时可以连接静态库么?
2022-03-21
Mac上如何使用火焰图?
2022-03-16
启动配置服务时遇到general protection
2022-03-15
C++变长数组的初始化
2022-03-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人