自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

loca1h0st

长剑 飞雪 高山 流水

  • 博客(12)
  • 问答 (1)
  • 收藏
  • 关注

原创 Win32多线程程序设计(一)

进程与线程是现代操作系统中的核心概念。进程作为资源容器,拥有内存空间(代码、数据、堆栈)和各种系统资源(文件句柄、GUI对象等),但其本身不执行指令。线程作为执行单元,共享进程资源却只需维护少量状态数据(寄存器值),这使得线程创建/销毁的开销远低于进程。多线程模型的优势在服务器场景尤为突出:Web服务器处理海量短期请求时,线程复用进程资源的特性可避免重复初始化带来的性能损耗,相比多进程方案显著提升吞吐量。这种"轻量级并发"机制在保持隔离性的同时实现了高效的资源共享。

2025-06-23 13:34:51 769

原创 OpenSSL Base64

摘要:本文介绍了使用OpenSSL封装Base64加解密的C++实现。通过创建BIO链(包括Base64过滤器和内存BIO),实现了字符串的Base64编码和解码功能。编码时使用BIO_write写入明文并通过BIO_flush确保数据输出;解码时使用BIO_read读取解密数据。关键点包括:1)设置BIO_FLAGS_BASE64_NO_NL避免换行;2)BIO_free_all必须在结果构造后调用,否则会丢失数据。示例代码展示了"Hello Base64!"的完整加解密流程,验证了该

2025-06-23 01:02:48 323

原创 OpenSSL BIO

BIO 本质是一个多态的 I/O 抽象层。通过BIO_METHOD来封装各种数据源,BIO 结构体维护状态和数据链表。BUF_MEM。

2025-04-28 13:27:41 1084 1

原创 OpenSSL Bio_file

BIO_new_file()使用mode模式创建一个新文件BIO,mode的含义与函数相同。在返回的BIO上设置BIO_CLOSE标志。BIO_read, BIO_write, BIO_gets, BIO_puts - BIO I/O functions: 尝试从读取字节,并将数据放入中: 执行的“获取"操作,并将数据放入中。通常此操作将尝试从最大长度为的读取一行数据。然后,也有了例外,例如上的将计算并返回而其他可能根本布置成: 尝试将字节从写入: 尝试将以null结尾的字符串写入返回值:所有这

2025-04-27 22:27:33 965 1

原创 VirtuAlloc

开辟虚拟内存

2025-04-25 14:16:33 1042 4

原创 CreateThread

创建在调用进程的虚拟地址空间内执行的线程。若要创建在另一个进程的虚拟地址空间中运行的线程,请使用函数。

2025-04-25 14:14:39 16805 2

原创 枚举当前Windows系统所有进程信息

获取每个进程的 PID(进程ID)、PPID(父进程ID)、线程数以及可执行文件名

2025-04-21 20:22:49 930 5

原创 callback function

回调函数是 C 语言中常见的一种编程技巧,它能够增强程序的灵活性和可重用性。通过函数指针,程序可以在运行时选择调用不同的函数,这在事件驱动、异步处理以及许多库或框架设计中都具有重要意义。在实际编程中,回调函数不仅可以用于简单的任务,也可以用于更复杂的事件处理和系统设计。

2025-04-16 16:43:28 2313

原创 C++赋值运算符重载

拷贝消除(Copy Elision)是编译器的一个优化技术,它可以在许多情况下消除不必要的拷贝构造。你的代码中的可以在很多情况下通过拷贝消除或移动语义来避免多余的拷贝构造和赋值操作。现代编译器在优化代码时会自动做这些优化,而不会显式地调用赋值运算符或拷贝构造函数。成员变量的初始化顺序是按声明顺序来的,和构造函数中初始化列表中的顺序无关。这意味着,如果你先使用size初始化data,而size尚未初始化时就会导致错误的行为。在size为0时会创建一个空数组,并不会为任何元素进行初始化。解决方法。

2025-04-16 14:54:56 2683 1

原创 C语言指针教程(二)

C语言指针教程

2023-12-31 00:34:51 2922 2

原创 C语言指针教程(一)

现在新增了一个变量p,在变量p中保存有变量i的首地址,因此,通过变量p也可以间接访问内存空间0Xa开始的4个内存单元,其操作方式是,先通过变量p的值找到变量i的地址(0Xa),在通过该地址即可访问到对应的内存空间。第6行定义int型变量i和j,并给变量i赋值10,接着定义一个类型为float的指针变量pf,然后将int型变量i的地址赋值给float型的指针变量pf.程序中,使用间接寻找地址运算符*从指针变量pf所指向的内存空间取出值。即变量pi保存的值为一个内存地址,该内存地中保存的是一个int型的数据;

2023-12-13 11:23:22 1190 2

原创 C语言数组讲解

数组是一组数码固定,类型相同的数据项,数组中的数据项称为元素。数组的重要特性是:数组中的元素个数固定,每个数组的元素都是int、long或其他类型。所以可以有元素类型是int的数组,元素类型是float的数组,元素类型是long的数组等。下面的数组声明非常类似于一个含有单一数值的正常变量,但要在名称后的方括号中放置一个数;方括号中的数字定义了要存放在数组中的元素个数,称为数组维(array dimension)

2023-12-13 11:21:07 1189 1

空空如也

空空如也

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

TA关注的人

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