0%

自旋锁

该篇博客参考了《多处理器编程的艺术》第七章——自旋锁与争用,相关代码可在 GitHub 仓库 中查看。

阅读全文 »

VScode 1.86 版本的 remote 要求 glibc 2.28 及以上,于是在各种旧版本服务器上就不支持了。

新版本刚发布就在 github 上的 issue 上讨论起来了,VScode 官方文档 中也说明了,从 VS Code 版本 1.86.1(2024 年 1 月)开始提高了远程服务器构建工具链的最低要求。VS Code 分发的预构建服务器与基于 glibc 2.28 或更高版本的 Linux 发行版兼容。

当然给服务器升级 glibc 是一个极其危险的操作,本人曾经就瞎捣鼓升级了 glibc,结果导致系统崩溃,不得已重装了系统。

我们可以利用 patchelf 手动指定动态库,避免了重新编译系统的 glibc。

阅读全文 »

前几天我想把一个本地仓库推送到 github 仓库中时提示:

1
2
3
4
5
6
7
remote: error: Trace: 9222dcf96227a19766567c1da4183cfef7b9ec21689a2ee21f6c1c3b2f1fab7a
remote: error: See https://gh.io/lfs for more information.
remote: error: File 18T.trace is 771.88 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
To https://github.com/CherryYang05/DiskPine.git
! [remote rejected] master -> master (pre-receive hook declined)
错误:无法推送一些引用到 'https://github.com/CherryYang05/DiskPine.git'

发现在之前的 git 记录中有一个大文件(18T.trace 771.88MB),但是在最新的提交记录中,我已经将其删除了,却依然无法推送。

经过查询资料,找到了解决方法:

  1. 若文件还没有删除,并且需要将其推送到远程仓库,使用 LFS(Large File Storage) 修改文件大小的限制;
  2. 若文件已经删除,使用 BFG Repo-Cleaner 清理 git 历史记录中对大文件的引用。
阅读全文 »

执行 yum 命令提示 CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/yum.conf

关于这个问题,网上可以找到很多解决方案,包括但不限于:

  1. 重新安装 yum
  2. 重新创建 /etc/yum.conf文件
  3. 使用 rpm 卸载当前安装的包

但是最后仍然报同样的错误。

因为之前在更换 libc 版本,手动编译安装了 glibc,最后搜到这个博客,得知是 curl 出了问题,是 libcurl 版本过低,libcurl 是 c/cpp 使用时的链接库,常用的 http get,post 请求,http,ftp 下载等都支持

curl 的功能实现是依赖 libcurl.so 这个动态链接库的,通常位于 /lib64 或者 /usr/lib64 中,4.x 版本的链接库地址为 libcurl.so.4

最后发现 libcurl 版本为 4.3.0,可能不支持 glibc-2.30 高版本的运行时,因此重新下载了高版本的 libcurl,具体操作见博客

log4rs 是rust实现的高度可配置日志库,该库配置的方式比较灵活,功能相对丰富,可以满足绝大部分的项目需要。

阅读全文 »

学计算机的人不能不会用命令行 GDB 进行调试,就像西方不能没有耶路撒冷~~

阅读全文 »

本篇文章介绍 C 语言中类似 #define, #if, #ifdef 等预处理指令以及宏的高级用法,最后整理出项目中一些常用的宏,例如打印调试信息等。
本篇文章将不会介绍简单的宏用法,例如 #define ADD(a, b) ((a)+(b))
本篇文章大部分参考《C Primer Plus 第六版》第 16 章

阅读全文 »

本文用 Rust 语言实现一个简单的进度条功能,并介绍通过转义码在终端打印带颜色等格式的字符串。

阅读全文 »

Makefile 的简单使用

makefile 脚本是类 Unix 上常用的脚本文件,通常用来自动化地构建项目。本文介绍构建一个简单的 makefile 脚本,并能够阅读和修改常见的 makefile 脚本文件。

阅读全文 »