自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 一文搞明白的C函数调用方式与栈原理

当一个c函数被调用时,一个是如何被建立,又如何被消除的。这些细节跟操作系统平台及编译器的实现有关,下面的描述是针对运行在Intel奔腾芯片上Linux的gcc编译器而言。c语言的标准并没有描述实现的方式,所以,不同的编译器,处理器,操作系统都可能有自己的建立栈帧的方式。

2024-03-28 13:08:20 940

原创 Vxworks POSIX Signal 逻辑与结构

Vxworks POSIX Signal 逻辑与结构

2024-03-27 15:26:01 132 1

原创 Markdown编辑器快捷指令

如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S

2024-03-27 15:15:20 917

原创 高并发系统设计的15个锦囊

在计算机网络中,限流就是控制网络接口发送或接收请求的速率,它可防止DoS攻击和限制Web爬虫。限流,也称流量控制。是指系统在面临高并发,或者大流量请求的情况下,限制新的请求对系统的访问,从而保证系统的稳定性。可以使用。

2023-03-28 15:25:06 209

原创 Linux select/poll/epoll 实现原理剖析

select(2),poll(2) 以轮询的方式检查 fd 集合,轮询一遍没有就绪事件发生就会将自己挂起,等待监视的文件将自己唤醒(超时和信号都可以唤醒)。而 epoll(7) 是设备就绪时,调用回调函数,把就绪 fd 放入就绪链表中,并唤醒在 epoll_wait(2) 中进入睡眠的进程。虽然都要睡眠和交替,但是 select(2) 和 poll(2) 在“醒着”的时候要遍历整个 fd 集合,而 epoll(7) 在“醒着”的时候只要判断一下就绪链表是否为空就行了,这节省了大量的 CPU 时间。

2023-03-27 10:30:00 390

原创 Linux 进程间通信 pipe 实现原理

本文基于 Linux-5.10 版本分析,借助 pipe 分析等待队列,为了下篇文章分析 slect/poll/epoll 实现做准备。pipe 是 Linux 系统中一种比较常用的进程间通信方法,不过使用 pipe 通信的两个进行必须有亲属关系,通常是父子进程。pipe 和 pipe2 返回成功时,pipefd 保存两个文件描述符:pipefd[0] 用于读,pipefd[1] 用于写。

2023-03-26 13:45:00 678

原创 C++ 智能指针万字总结一文搞懂

以引用计数为基础的智能指针,引用计数的管理逻辑如下:除了初始化对象本身外,每个构造函数(拷贝构造函数除外)还要在堆上创建一个引用计数,用来记录有多少个对象共享状态。当我们创建一个对象时,只有一个对象共享状态,因此将引用计数初始化为 1;拷贝构造函数不分配新的计数器,而是拷贝给定对象的数据成员,包括计数器。拷贝构造函数递增共享的计数器,标记给定对象的状态又被一个新用户所共享析构函数递减计数器,标记共享状态的用户少了一个。如果计数器变为 0,则析构函数析构对象,包括引进计数变量;

2023-03-25 10:15:00 196

原创 C++各类设计模式及实现详解

软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。

2023-03-24 14:32:27 550

原创 c++拷贝与引用讲解

解释:上述代码中,c的初始值是100,执行showValue函数以后,由于形参中没有const关键字,同时val使的是引用(即:val与c绑定在一起,地址相同),导致val修改了c的值为1000,所以最终c打印出来即为10000。解释:以上代码中,a与b的值相等,但是a与b的地址并不相等,原因是执行b=a时,相当于b又开辟了一块新的内存空间来存储a中的值。解释:以上代码中,同样a与b相等,同时a与b的地址也相等,这就免去了重新定义变量时要开辟新的内存空间。程序会提示,val不能被修改,也就是c不能被修改。

2023-03-24 13:56:54 563

原创 C++ 读写Json文件

JSON文件无论是在web开发、客户端开发、服务端等开发中都是应用比较广泛的的第一种轻量级数据交换格式,非常方便阅读和编写。也是开发、测试、运维人员必备的一项技能!!!JSON是一种用于共享数据的开放标准文件格式,它使用人类可读的文本来存储和传输数据。JSON 文件以 .json 扩展名存储。JSON 需要较少的格式,是 XML 的一个很好的替代方案。JSON 源自 JavaScript,但它是一种独立于语言的数据格式。许多现代编程语言都支持 JSON 的生成和解析。

2023-03-24 13:41:40 3565

空空如也

空空如也

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

TA关注的人

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