【高性能服务器】select模型
🔥❤️IO多路复用就是复用一个线程,从原先一个客户端需要一个线程去调用recv询问内核数据是否已经就绪,那么多个客户端就需要多个线程,转变成现在多个客户端都用一个线程使用select/poll去统一管理,主动通知用户哪些数据已经就绪(read,write,accept等事件),所以复用了这个线程,
渗透测试之内核安全系列课程:Rootkit技术初探(五)
Rootkit 技术,涉及到多方面的知识,包括 硬件系统 、 软件系统 、 内核驱动 、Rootkit 技巧(例如,如何绕过安全软件的检测、如何检测到工作于内核层面的 Rootkit 软件)等。,只有了解底层的内核实现,我们才能去 读取 或 更改 页目录表( PDT ) 、页表( PTT )、页(
【Linux C | 文件I/O】文件数据的同步 | sysc、fsync 和 fdatasync 函数
本文介绍文件数据的同步的几个函数 `sysc`、`syscfs`、`fsync` 和 `fdatasync`。
VSCode+clangd让写C/C++代码更丝滑
使用C/C++写了十几二十年的代码了,这两年做的项目都是使用Go语言来写的代码了,主要使用Goland来写Go,写起来是相当的丝滑,自动提示、补充代码就不说了,很多IDE都有的功能,它还支持自动添加代码import包,提示如何修复错误等等。C/C++也有IDE可以做到了,这一切都要归功于LLVM的优
顺序表应用——通讯录
1.实现通讯录前功能的分析在本篇之前的我们已经学习的顺序表的实现,了解了如何实现顺序表的插入和删除等功能,那么在本篇当中就要学习基于顺序表来实现通讯录,在通讯录当中能实现联系人的增、删、查改等功能,接下来就让我们一起来实现通讯录吧!
Conan C/C++ 开源包管理工具
当前(2024-04-11) conan 的使用方法和之前的 conan 使用方法有较大差异, 未来也可能会有较大差异. 如果发现此教程不能使用, 也有可能是版本更新导致.今后如果有新的包需要添加, 找到对应的包(以 fmt 为例) 找到对应的 conanfile.py 选项, 将新需要的。不过版本
vscode配置C/C++环境(主要介绍.vscode文件夹中json文件的生成)
不用复制别人的.vscode文件夹中的代码,自己配置C/C++运行环境,根据自己情况修改c_cpp_properties.json , task.json , launch.json三个文件
C/C++单元测试如何解决非虚函数对象依赖
上文提到的gmock基于虚函数继承实现,面对非虚函数无能为力,那么我们需要hook技术的cppfreemock来搞掂~~
Visual Studio调试C/C++指南
前言Visual Studio(VS)是微软开发的一款集成开发环境(IDE)软件,支持C/C++、C#、VB、Python等开发语言,开发桌面、Web等应用程序。VS功能极其强大,使用极其便利,用户数量最多,被誉为"宇宙第一IDE"。熟悉地掌握基于VS的C/C++调试技术,可以大幅提升调试性能。随着
自动化生成C/C++单元测试覆盖率报告!
如何将单元测试无感的集成到开发当中?脚本自动化帮你搞掂一切!实现梦想
数据结构——经典链表OJ(二)
乐观学习,乐观生活,才能不断前进啊!!!点击和。
C语言与嵌入式AI边缘计算:TinyML、TensorFlow Lite在嵌入式设备上的应用(二)
TinyML是一种专注于在极低功耗、资源极其有限的微控制器(MCU)级别硬件上实现机器学习(ML)模型高效运行的技术领域。其核心目标在于将先进的机器学习算法和模型移植到体积小巧、能耗极低的嵌入式设备中,使这些设备具备边缘智能,能够在没有外部服务器支持的情况下进行实时数据处理和决策制定。
【C语言】程序环境和预处理
_FILE__ //运行时编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__SIDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义
基于C语言的Linux学生管理系统设计课程设计
这是基于C语言的Linux学生管理系统设计课程设计,内附源码。
C/C++生成单元测试覆盖率
工具链已万事齐备,且看如何将他们整合一起生成一份咱们所需的覆盖率报告!!
【C/C++】用C语言写一个数据仓库,存储和修改数据
这个代码实现了一个简单的数据仓库,其中数据被存储在一个3x3的二维数组中。用户可以通过控制台界面与这个数据仓库进行交互,可以选择查看数据或者修改数据。
SCU【C】程序设计基础期末安全项目lab1-Decode-writeup(附题目&源码)
好了话不多说,上题解!(源码在文末)这个函数的功能是,从 data 数组的首地址偏移 start + 1 地址开始,每转换 stride -1 个字符后,就跳过一个字符不转换,重复执行这样的操作直到转换到最后一个字符.注意:因此打断点打在主函数,extract1函数里面的int*key1是局部变量,
渗透测试之内核安全系列课程:Rootkit技术初探(四)
当 PDE( 页目录项 ) 的 PS 位( 第8位 ) 为 1 时,代表PDE( 页目录项 )直接指向页( P ),这时,页的大小为 4MB(这是一个大页),此时,这个大页( 4MB 大小的物理页)的物理地址计算公式为: PDE( 页目录项 ) 的 高 10 位 + 线性地址 的 低 22 位。
C/C++高性能服务器网络库框架libhv源码解读
信号处理,日志,资源池,线程池错误,命令行参数,配置文件,堆,缓存,链表,队列,红黑树,MultiMap,JSON,tcp,udp,http,WebSocket事件循环,事件循环线程,事件循环线程池,定时器,网络IO,异步自定义事件,epoll,poll,select,iocp(win),kqueu
【C C++开源库】适合单片机 嵌入式的C语言单元测试库_单片机 单元测试框架
原谅我突然跳到这个话题,因为这个时候我们必须要更加深入的了解单元测试是什么,怎么写出适合单元测试的代码。单元测试当然是测试函数,测试模块的功能,如果要更具体的描述这个过程,那就是测试给函数输入不同的输入值,然后比较输出值是否是我们预想的输出值。试想一下,如果我们的代码都写在一个函数里面,那这个函数我