诞生
本博客诞生起源于……
2025年1月,看到别人的博客,我去,怎么那么帅呢,就想自己也搞一个,不过一直拖到了2026年的1月(=。=)
随念一想,博客现在出来了,本着开源的精神,我可以把笔记(电子垃圾)发出来,还可以发一些处理bug的过程。
电脑网页端观感更佳哦
维护
本博客部署于Cloudflare,仅域名(abinng.com)是在阿里云购买的,总成本
85/年
其他可访问的站点:
cf.abinng.dpdns.org
abinng.github.io
既然部署于Cloudflare,emm,后台不挂东西的话,加载还是会慢的,所以你可以开着进来,体验更佳
内容
本博客主要是编程、生活相关,技术部分都相当基础,主要是因为我本人也比较菜,不过会一直更新的。。(可能吧)
快速找到想看的内容?可以通过首页右上角的搜索或者在标签/分类页进行关键词查看~
关于文章质量,目前我只是将我自己本地给自己看的笔记,微微优化之后发到博客上,再加上博主文笔不好,可能观感不是那么好,不过再怎么说也是真实的技术/bug记录,还是有不少真东西的
图片
关于装饰图, ...
auther: abinng date: 2026-03-15 10:25
createDate:2026-03-15 10:23
Code display
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758#include "oatpp/web/server/HttpConnectionHandler.hpp"#include "oatpp/network/Server.hpp"#include "oatpp/network/tcp/server/ConnectionProvider.hpp"/** * Custom Request Handler */class Handler : public oatpp::web::server::HttpRequestHandler {public: /** * Handle incoming request and return outgoing response. ...
auther: abinng date: 2026-03-15 11:05
createDate:2026-03-15 10:10
问:
github上一些项目的release中总是有类似配套的东西,有xxx.exe和xxx.exe.sig,如下
答:
是什么
图片里那些与安装包同名、以 .sig
结尾的文件,是数字签名文件(Digital Signature)。
开发者在发布软件时提供这些配套的 .sig
文件,主要是出于安全和防篡改的考虑。简单来说,它的作用相当于给软件盖上了一个“官方认证的防伪钢印”。
为什么存在
1. 验证软件来源(真实性)
当你在网上下载文件时,存在被黑客劫持或者下载服务器被入侵的风险。黑客可能会把官方的
xxx.exe 替换成带有病毒的恶意版本。
为了防止这种情况,开发者会用只有他们自己才拥有的**私钥(Private
Key)对软件进行加密计算,生成这个 .sig
签名文件。用户下载后,可以使用开发者公开的公钥(Public
Key)**来验证这个签名。如果验证通过,就说明这个文件确实是原作者发布的,没有被别人掉包。
...
auther: abinng date: 2026-03-11 17:01
createDate:2026-03-11 17:01
Windows 宿主机配置
首先要确保你的 Clash 允许来自局域网的连接,并找到宿主机的局域网
IP。
开启局域网共享:
打开 Clash Verge。
在 设置 (Settings) 或主界面中,找到
允许局域网 (Allow LAN) 开关,确保它是
开启 状态。
查看代理端口,通常是 7890 或 7897(Clash
Verge 默认通常是 7897)。
获取宿主机 IP 地址:
在 Windows 上打开终端(CMD 或 PowerShell),输入
ipconfig。
找到你的物理网卡(通常是“以太网适配器”或“无线局域网适配器”)的
IPv4 地址。
注意: 如果你使用的是 WSL2,IP 地址通常在
vEthernet (WSL) 适配器下。
配置终端代理
打开配置文件
1vi ~/.bashrc
将下面内容加入到末尾,记得修改ip和代理监听端口
12345678 ...
网络编程
网络编程是什么?有什么用?如何实现?
写在前面
本篇仅作简单介绍,内容适合入门级别
文中相关api就不做过多介绍,不然字数就太多了,可自行去api手册了解
语言不保证严谨,内容也不保证完全,欢迎指正错误、补充
本文我已经尽量减少字数了,还是1w多,不知道打开会不会卡 : )
一、网络编程基础
一、为什么引入网络编程
学完多进程、进程间通信,我们发现这些通信方式都是在同一个主机上多个进程之间进行的,并不能实现跨主机通信。如果想要实现跨主机的通信方式,就要用到socket套接字通信方式,也就是本篇讲的内容。
二、网络基础
都涉及到网络了,肯定是需要一定的计算机网络知识,这里我只简单提及
协议:庞大的计算机网络中,要实现有条不紊的通信,就得按照一定的约定来进行数据的交换,这些规则、约定、标准统称为协议(protocol)
TCP:提供了面向连接的、可靠的数据传输服务
UCP:提供了面向无连接的、不保证数据可靠传输的、尽最大努力的传输协议
IP:网络层的一种协议,上面两种协议都会使用该协议
网络体系结构
TCP/IP体系结构: ...
多线程
多线程是什么?怎么使用?多线程和多进程有什么区别?本篇就作一些简单介绍带你入门
写在前面
本篇仅作简单介绍,内容适合入门级别,可通过目录查看。重点在于熟悉每一个经典使用模式
文中相关api就不做过多介绍,不然字数就太多了,可自行去api手册了解
语言不保证严谨,内容也不保证完全,欢迎指正错误、补充
如果你已经看过我之前的多进程博客(并且能适应我的破烂语言组织),这篇文章会让你更容易理解。多线程和多进程在很多概念上是相通的,但也有本质区别。
一、多线程基础
一、进程 vs 线程(简单区分)
其实大多数人心中对这两个有一个模糊的对比,那么简单来讲就是:一个工厂(进程)里面有多个工人(线程),工人共享工厂资源,协作完成一个任务。
二、多线程基础
多线程也是实现多任务并发的一种
进程是资源分配的基本单位,线程是任务器进程进行任务调度的最小单位
一个进程可以拥有多个线程,同一个进程中多个线程共享进程资源
因为共享进程资源,多线程的主要问题是竞态,会发生资源抢占问题,也每多进程安全
多线程执行顺序是按时间片轮转的
一个进程中的线程占用越多,任务器 ...
多进程
多进程是什么?怎么使用?带你入门多进程
写在前面
本篇仅作简单介绍,内容适合入门级别,可通过目录查看。重点在于熟悉每一个的经典使用模式
文中相关api就不做过多介绍,不然字数就太多了,可自行去api手册了解
语言不保证严谨且语言组织比较奇怪,内容也不保证完全,欢迎指正错误、补充
一、多进程基础
一个进程占有的空间是虚拟内存(4G),分为两块,用户空间(0-3G)和内核空间(3-4G)
一、目的
1> 实现多任务并发
2> 实现进程间通信,方便数据处理
二、时间片轮转
单个cpu核心工作时,并不能同时处理多个任务,但每次都一个任务干到底并不现实,当某一个任务卡到输入时,程序阻塞了,什么都干不了——时间片轮转的机制就能解决这一现象,给运行队列中的每一个任务分配一定的时间段,这个时间段非常短,时间结束后就继续执行下一个任务,如此循环,这就是时间片轮转。
三、特殊的进程
0号进程:这是由linux操作系统启动后运行的第一个进程,也叫空闲进程,当没有其他进程运行时,会运行该进程。是1号进程和2号进程的父进程
1号进程:由0号进程创建, ...
IO操作(标准IO与文件IO)
本文语言不保证严谨,内容也不保证完全,欢迎指正错误、补充
一、前言
C语言提供了两套主要的IO系统:标准IO和文件IO。理解这两种IO能帮助我们理解到程序如何与操作系统交互。
二、标准IO与文件IO
标准IO:使用系统提供的C标准库函数进行IO操作,通过FILE指针作为文件的句柄(用于标识某个资源或对象的唯一标识符)。
文件IO:基于系统调用的IO操作,每进行一次系统调用,进程会从用户空间向内核空间进行一次切换,而进程会挂起,从而导致进程执行效率降低。
二者主要区别
标准IO相较于文件IO而言提供了缓冲机制,以及一些格式化操作(fprintf,
fscanf等)和较好的跨平台性;文件IO较为底层,系统相关性较强,需要使用者处理更多细节。
相关接口:
标准IO:printf/scanf, fopen/fclose, fread/fwrite, fprintf/fscanf, fgetc/fputc, fgets/fputs, fseek/ftell/rewind
文件IO:open/close, read/write, ls ...
auther: abinng date: 2026-02-01 10:55
createDate:2026-02-01 10:55
前言
前什么言?直接开始
提前准备的程序
我提前准备了一个.c文件hello.c
12touch hello.cvim hello.c
123456#include <stdio.h>int main() { printf("Hello World!\n"); return 0;}
保存退出
这里默认你已经有gcc了,如果没有,emm….去装一下
Linux
12345678910111213141516171819202122232425262728293031323334353637383940➜ Code_OS gcc -v -o build hello.c Using built-in specs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapperOFFLOAD_TARGET_NAMES=nvptx ...
author: abinng date: 2026-01-31 23:44
createDate:2026-01-31 20:27
前言
WSL2
安装与配置中,我写到了配置Docker
Desktop,但是鉴于Docker安装的篇幅可能不适合在一个标题下面写完,故又开了一篇,也好按照笔记名来查找。
当然本篇不是直接在WSL2上安装Docker Engine,而是Docker
Desktop
所以,不用多说了吧,本篇主要是面向初学者的 Windows Docker Desktop
安装与配置
安装 Docker
下载安装包
去 Docker
官网 下载并安装 Docker Desktop for Windows。
该下载哪个(这里只管windows的)??
Win+R输入cmd,接着输入echo %PROCESSOR_ARCHITECTURE%,会出现AMD64或者ARM,接着下载对应架构的就好
自定义安装位置
找到安装包的位置,注意先别急着双击打开,在该文件夹以管理员身份打开CMD,注意不是PowerShell
我们用命令行安装,来指定安装位置,例 ...

















