自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

布袋和尚

己所不欲,勿施于人。

  • 博客(642)
  • 资源 (24)
  • 收藏
  • 关注

转载 Linux / ldd 命令的介绍与使用

我们知道,ld-linux.so 模块会先于 executable 模块程序工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so 选择了显示可执行模块的 dependency。当 LD_TRACE_LOADED_OBJECTS 环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的dependency,而程序并不真正执行。(3)/etc/ld.so.cache 文件中的路径,但如果可执行程序在连接时候添加了 -z nodeflib 选项,则跳过。

2023-08-09 20:22:11 1410

转载 DNS 解析顺序是怎样的?

所谓 DNS 缓存是指 DNS 返回正确的 IP 地址之后,系统会将这个结果临时储存起来,并为缓存设定一个失效时间(TTL 值),在TTL失效前,当再次访问这个网站,系统就会直接从 DNS 缓存中将结果返回,而不必再次委托递归服务器进行全球解析查询,加快了 DNS 解析的流程。首先递归服务器会请求根域名服务器,根域名服务器根据域名后缀,告知对应的顶级域名服务器;如果本机和路由器 DNS 缓存中没有该域名的解析记录,浏览器就会向递归服务器发起请求,如果递归服务器缓存有该域名解析条目,返回结果,解析结束。

2023-04-18 15:40:46 920 1

转载 MAC 认证和 MAC 旁路认证

由于同一个接口下可以有多个用户进行认证,因此这种情况下接口上的所有 MAC 认证用户均使用同一个固定用户名进行认证,服务器端仅需要配置一个用户账户即可满足所有认证用户的认证需求,这适用于客户端比较可信的网络环境。设备在启动了 MAC 认证的接口上首次检测到用户的 MAC 地址以后,即启动对该用户的认证操作。MAC 旁路认证适用于 802.1X 认证环境中,无法安装 802.1X 认证客户端的终端(又称之为哑终端,例如 IP 电话、网络打印机、摄像头),以 MAC 地址作为用户和密码自动接入网络的场景。

2023-03-31 09:36:03 1524

原创 Linux / ld 和 ld.so 命令的区别

而命令 ld.so 相应的配置文件是 /etc/ld.so.conf,这是个文本文件,里面可以增加修改 so 库的搜索路径(与windows下是有区别的,windows下动态库是先搜索当前目录,再去环境变量 PATH 中搜索,再到系统路径下去搜索),当然也可以通过定义一个 $LD_LIBRARY_PATH 的环境变量来指定运行时的搜索路径。ld 链接器,它的生命周期是发生在 compile-time 的,它的一些参数是编译时期 gcc 给传递的。比如,指定需要链接什么库。

2023-02-15 14:14:29 575

原创 Linux / .symtab 和 .dynsym 区别和联系

动态符号表 (.dynsym) 用来保存与动态链接相关的导入导出符号,不包括模块内部的符号。而 .symtab 则保存所有符号,包括 .dynsym 中的符号。

2023-02-13 06:46:57 512

原创 bcript 算法

除了加盐来抵御 rainbow table 攻击之外,bcrypt 的一个非常重要的特征就是自适应性,可以保证加密的速度在一个特定的范围内,即使计算机的运算能力非常高,可以通过增加迭代次数的方式,使得加密速度变慢,从而可以抵御暴力搜索攻击。今天要给大家介绍的一种“加密”算法叫做 bcrypt,bcrypt 是由 Niels Provos 和 David Mazières 设计的密码哈希函数,他是基于 Blowfish 密码而来的,并于 1999 年在 USENIX 上提出。二、bcrypt 的工作原理。

2023-02-09 05:23:40 554

转载 密码安全等级

优点:这种方法会极大防止受到彩虹表的攻击,因为即便攻击者构造出彩虹表,因为你使用了 hash(密码+ salt),攻击者彩虹表里的哈希值(hash(密码))和你数据库中的哈希值是不同的。由于现在的彩虹表大部分是针对一次 md5 的,当然可能存在多次 md5 的彩虹表,那么我们可以多次 md5,大大增加他的存储成本和少量的计算成本。学名叫加盐(salt),salt 可以简单的理解成:随机产生的一定长度的,可以和密码相结合,从而使hash算法产生不同结果的字符串。通过迭代计算的方式增加计算密码的成本。

2023-02-09 04:52:56 311

转载 HMAC 算法原理

HMAC 算法是一种执行“校验和”的算法,它通过对数据进行“校验”来检查数据是否被更改了。在发送数据以前,HMAC 算法对数据块和双方约定的公钥进行“散列操作”,以生成称为“摘要”的东西,附加在待发送的数据块中。当数据和摘要到达其目的地时,就使用 HMAC 算法来生成另一个校验和,如果两个数字相匹配,那么数据未被做任何篡改。如果 K 的字长是 120 字节,B=64 字节,则会用 H 作用于 K 后产生 64 字节的字符串)2、将上一步生成的 B 字长的字符串与 ipad 做异或运算。

2023-02-08 14:22:44 1229

转载 Linux 中,profile 文件中 umask 022 的含义

在 Linux 的 profile 文件中,包含以下语句。umask 决定目录和文件被创建时得到的初始权限,“022”时初始权限为“rwxr-xr-x”,即“755”。1、查看 umask 的值。2、设置 umask。

2023-02-02 11:04:11 1284

转载 linux / lsusb

USB 现在已经拥有超过 30 亿端口的年出货量,是迄今为止最常用的接口技术,笔记本电脑、平板电脑、智能手机和其他各种设备都依赖于这种技术来进行功率和数据传输。今天 USB 已经远远超出其最初提供的功能,所支持的数据速率和功率水平都提高了几个数量级。​USB,是英文 Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,早期用于规范电脑与外部设备的连接和通讯。命令对你的系统上的 USB 设备做一个诊断。会显示连接到 USB 总线上的设备信息和驱动信息。下面介绍如何理解输出。

2023-02-02 10:58:21 266

原创 linux / Generic Netlink

Genetlink 消息是命令驱动式的,即每一条消息的 genlmsghdr 中都指明了当前消息的 cmd 消息命令,这些消息 cmd 命令由用户自行定义。由于 netlink 协议最多支持 32 个协议簇,目前 Linux4.1 的内核中已经使用其中 21 个,对于用户需要定制特殊的协议类型略显不够,而且用户还需自行在 include/linux/netlink.h 中添加簇定义,但有时不方便,为此 Linux 设计了这种通用 Netlink 协议簇,用户可在此之上定义更多类型的子协议。

2023-01-30 15:49:35 1098 1

转载 如何在海量数据中判断某个数据是否存在?

它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。如果置为 0,那么“宋江”就不高兴了,如果不变,显然又会增加对“吴用”的误判率(已经被删除,但该位置还是1)。在后来的改进中,对位图的每个单元增加了计数器,计数器初始值为 0,每映射一个数据,计数器加 1,每删除一个数据,计数器减 1。回想一下,在 java 中我们可以使用列表、集合等数据结构来存放数据,如 hashmap,然后判断某个数据是否存在,但在此问题中显然不适用,因为上亿的数据在内存较小的计算机中无法存放。

2023-01-29 11:47:19 828

转载 Linux / struct stat 结构体简介

若一目录具有 sticky 位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或 root 来删除或改名,在 linux 中,最典型的就是这个 /tmp 目录啦。这两个方法区别:stat 没有处理字符链接(软链接)的能力,如果一个文件是符号链接,stat 会直接返回它所指向的文件的属性;两个函数的第一个参数都是文件的路径,第二个参数是 struct stat 的指针。struct stat 这个结构体是用来描述一个 linux 系统文件系统中的文件属性的结构。

2023-01-28 14:21:53 550

转载 Linux 中三种引号(单引号、双引号、反引号)的区别

单引号可保证其内部所有字符不被 shell 解析,如单引号与 grep、sed、awk 命令配合使用,则单引号内部字符将直接发送给 grep、sed、awk 命令进行正则表达式的解析。第一条命令使用了双引号,允许 shell 对转义符进行解析,shell 把四个 \ 解析成 2 个 \ 传递给grep,grep 再把 2 个 \ 解析成一个 \ 查找;反引号的功能是命令替换,在反引号(``) 中的内容通常是命令行,程序会优先执行反引号中的内容,并使用运行结果替换掉反引号处的内容。

2023-01-16 13:26:06 11833

转载 Linux / grep 中的正则表达式

Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式 extended regular expressions,而且 GNU grep 在所有的 Linux 系统中都是默认有的。放在括号内的表达式,即包在 "[:" 和 ":]" 之间的字符类的名字,它表示的是属于此类的所有字符列表。2、你可以仅仅只搜索出以单词 sys 开始的行,即不显示 systemd 等。你可以分别使用 ^ 和 $ 符号来正则匹配输入行的开始或结尾。2、搜索大小写任意的 vivek(即不区分大小写的搜索)

2023-01-16 11:34:04 1166

原创 linux / proc

由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取 proc 文件时,proc 文件系统是动态从系统内核读出所需信息并提交的。进程所打开的每个文件都有一个符号连接在该子目录里,以文件描述符命名,这个名字实际上是指向真正的文件的符号连接,(和 exe 记录一样)。请注意 pwd 命令通常是 shell 内置的,在这样的情况下可能工作得不是很好(casper 注: pwd 只能显示 /proc/20/cwd, 要是想知道它的工作目录,直接 ls -al /proc/20 不就好了)。

2023-01-16 07:11:14 484 2

转载 “轻松搞定 CMake”系列之 find_package 用法详解

在没有 CMake 的时代,这种库查找链接的工作都需要借助 MakeFile 中的各种命令来完成,非常的繁琐,而且不方便移植,到了 CMake 时代,CMake 给我们提供了 find_package() 命令用来查找依赖包,理想情况下,一句 find_package() 命令就能把一整个依赖包的头文件包含路径、库路径、库名字、版本号等情况都获取到,后续只管用就好了。所谓“找到”这些库,其实是根据我们的需要找到指定版本的库头文件包含路径、链接库路径等,从而能够满足我们开发项目的编译链接需要。

2023-01-13 13:57:10 11284 1

转载 如何判断 Linux下 网卡是虚拟还是物理网卡?

ifconfig 命令可以查看 Linux 系统中正在使用的网卡,包括物理网卡和虚拟网卡,如果想要查看Linux 系统中全部的网卡,可以查看 /proc/net/dev 文件,那如何区分网卡是虚拟还是物理的呢?这些目录就代表的是虚拟网卡对应的目录。不过是做了 bond 还是通过 brctl 添加的,都会把相应的网卡名添加到这个目录。查看 /sys/devices/virtual/net/ 这个文件。

2023-01-12 17:32:46 1337

原创 Linux 中 Shell -- /sbin/nologin 的理解

举例来说,在各个系统账号中,打印作业有 lp 这个账号管理,www 服务器有 apache 这个账号管理,它们都可以进行系统程序的工作,但就是无法登录主机而已。在 Linux 系统中,shell 解析器分为多种,其中我们常用的 shell 解析器为 /bin/bash、/bin/sh。系统账号的 shell 使用 /sbin/nologin,此时无法登录系统,即时给了密码也不行。在这些 shell 里,有一个特殊的 shell -- /sbin/nologin。3、修改 test 用户的密码。

2023-01-05 17:36:13 1980

转载 无线信道是什么意思,无线网络通道是什么意思?

如果你的路由器非要让你指定,那么你可以随便指定一个,不过建议不要指定前三个,以免和其他路由 wifi 信道冲突,而后记住你的选择而且并用你的无线网卡选择同样的信道与之连接,不过如果你是现在版本的无线网卡,无线网卡都支持自动选择,你可以选择自动而后让你的无线网卡自动与之适配。信道其实可以理解为空间中的不同频段,所有无线设备:手机、电脑、无线路由、收音机等等都混杂在电磁波中,那彼此都对彼此的信号造成了干扰,所以后期规定不同设备只允许用特定的频段,这样大家都互不干扰,“和谐”存在空间中。

2023-01-04 09:31:48 11556

转载 最全面的 linux 信号量解析

在做这个之前,要确定所有对这个有名信号量的引用都已经通过 sem_close() 函数关闭了,然后只需在退出或是退出处理函数中调用 sem_unlink() 去删除系统中的信号量,注意如果有任何的处理器或是线程引用这个信号量,sem_unlink() 函数不会起到任何的作用。字创建一个新的 IPC 结构。由于有名信号量的值是保存在文件中的,所以对于相关进程来说,子进程是继承了父进程的文件描述符,那么子进程所继承的文件描述符所指向的文件是和父进程一样的,当然文件里面保存的有名信号量值就共享了。

2022-12-29 17:00:22 5522 2

原创 C/C++ / typeid 详解

【代码】C/C++ / typeid 详解。

2022-12-28 19:11:55 235

转载 集线器、交换机和路由器(图解)

3、A 将源 MAC 地址(AAAA)与网关 MAC 地址(ABAB)封装在数据链路层头部,又将源 IP 地址(192.168.0.1)和目的 IP 地址(192.168.2.2)(注意这里千万不要以为填写的是默认网关的 IP 地址,从始至终这个数据包的两个 IP 地址都是不变的,只有 MAC 地址在不断变化)封装在网络层头部,然后发包。现在每一台电脑,同时有自己的 MAC 地址,又有自己的 IP 地址,只不过 IP 地址是软件层面上的,可以随时修改,MAC 地址一般是无法修改的。

2022-11-10 13:53:40 5497 21

转载 以太网帧最小帧长与最大帧长

假设:A、B 两地之间通过一个单向传送带传递物品,传送带的传输速度是 C (C 代表光速),也就是 20.3cm/ns(每纳秒 20.3 厘米),A 点有个人叫 Marcia,她要把一车荔枝一串一串的发送给B 点的那个人 Allen,现在 Marcia 需要抉择的是:我在传送荔枝给 Allen 的时候,如果 Allen 同时也有荔枝传给我,这个时候就会产生冲突,而冲突会把传送中的荔枝撞碎,破碎的荔枝渣会通过传送带反送给我,我很想知道是哪一串荔枝被撞碎了,如何实现?这也是我们常说的一个碰撞域的直径。

2022-11-10 10:14:25 4318

转载 MMU 和 IOMMU

(2)如果将这个物理设备通过透传的方式进入到虚拟化虚拟机里,虚拟机的设备驱动配置设备的DMA 后,hypervisor 必须在透传设备 DMA 访问时刻,对 DMA 访问进行截获,将其中 DMA 访问的虚拟机物理地址,转换为 hypervisor 为虚拟机分配的物理地址,也就是需要将虚拟机透传设备DMA 访问做 vpaddr(虚拟机物理地址)----> ppaddr(物理机物理地址)。)即转换快表,又简称快表,可以理解为 MMU 内部专用的存放页表的 cache,保存着最近使用的 PTE 乃至全部页表。

2022-11-09 19:07:38 3466

转载 doxygen 注释规范

在你的注释中加入这样的代码。

2022-11-08 09:32:26 1493

转载 cpu、socket、core、thread 等术语之间的关系

当我们在看技术文档时,经常会发现很多有关 cpu 的术语,比如 cpu、cpu socket、cpu core、hyper-threading 等,乱乱的分不清楚,这篇文章我带大家用三分钟时间,快速的过一遍各种术语代表什么,以及它们之间的关系。上图中 thread 总数是用 cpu 来表示的,这也是为什么上文说,cpu 是个比较宽泛的概念,在不同的语境下有不同的定义,这里表示的就是逻辑核,也就是 thread。core 的中文意思是核心,它就是我们平时说的,一个 cpu 中有几核的核的概念。

2022-11-01 18:58:20 3205

转载 了解 OVS

在 OVS 中,ovs-vswitchd 从 OpenFlow 控制器获取流表规则,然后把从 datapath 中收到的数据包在流表中进行匹配,找到匹配的 flows 并把所需应用的 actions 返回给datapath, 同时作为处理的一部分,ovs-vswitchd 会在 datapath 中设置一条 datapath flows 用于后续相同类型的数据包可以直接在内核中执行动作,此 datapath flows 相当于 OpenFlow flows 的缓存。关于 datapath,

2022-10-24 18:11:52 1289

原创 关于 Hypervisor的理解

这与操作系统级虚拟化技术不同,该技术让所有的实例共享一个内核(所谓操作系统级虚拟化技术就是指容器),即使 guest operating system 能够在 user space 不同,例如有同样的内核的 Linux distribution。Xen 的实现方法是运行支持Xen 功能的 kernel,这个 kernel 是工作在 Xen 的控制之下,叫做 Domain0,使用这个 kernel 启动机器后,你可以在这个机器上使用 qemu 软件,虚拟出多个系统。相比较,KVM 就简化的多了。

2022-10-21 14:03:16 3588

转载 NFV 和 SDN 之间到底有什么关系?

按我个人的观点,NFV 和 SDN 的关系,其实确实不大。现在,随着x86通用服务器硬件能力的不断增强,通信行业开始学习IT行业,引入云计算技术,使用x86通用服务器替换厂商专用服务器,将核心网“云化”。虚拟化技术,就是物理服务器的基础上,通过部署虚拟化软件平台,把计算资源(类似CPU、内存等)、存储资源(类似硬盘)、网络资源(类似网卡)等资源进行统一管理,按需分配。我们的移动通信网络,尤其是核心网,是由很多网元设备组成的。同时,SDN 简化网络配置、节约运维成本的特点,也深受运营商的欢迎。

2022-10-18 10:02:09 2984

原创 vagrant 说明

Vagrant 是基于 Virtualbox 的虚拟机来构建你的开发环境,而 Docker 则是基于 LXC(LXC) 轻量级容器虚拟技术。当你添加一个 box 时,Vagrant 会打开它并内部存储,原始的 .box 文件是不被保留的。此命令是用于将已安装的 box 重新打包为 .box 文件。指定 box 的名字、提供者、版本号需要可通过 vagrant box list 命令检索到。Docker 就是在内核容器技术(Cgroup 和 Namespace)的基础上,提供了一个更高层的控制工具。

2022-10-18 07:27:30 342

原创 linux / dbus

1、列出所有的 dbus 服务。2、如何列出系统服务的接口。

2022-10-17 17:12:18 1020

转载 Linux / 线程绑定到 CPU 指定核心

如果当前 pid 所指定的进程此时没有运行在 mask 所指定的任意一个 CPU 上,则该指定的进程会从其它 CPU 上迁移到 mask 的指定的一个 CPU 上运行。该函数获得 pid 所指示的进程的 CPU 位掩码,并将该掩码返回到 mask 所指向的结构中,即获得指定 pid 当前可以运行在哪些 CPU 上。如果 pid 的值为 0,则表示指定的是当前进程,使当前进程运行在 mask 所设定的那些 CPU 上。该函数设置进程为 pid 的这个进程,让它运行在 mask 所设定的 CPU 上。

2022-10-12 09:36:41 471

转载 Linux inotify功能及原理(inotify_init、inotify_add_watch、inotify_rm_watch、read)

一、inotify 主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。inotify 是文件系统变化通知机制,在监听到文件系统变化后,会向相应的应用程序发送事件。

2022-10-12 09:07:09 680

转载 __attribute__ format(printf, 1, 2) 的具体含义

format (printf, 2, 3) 告诉编译器,my_format 相当于 printf 的 format,而可变参数是从 my_printf 的第 3 个参数开始。这句主要作用是提示编译器,对这个函数的调用需要像 printf 一样,用对应的 format 字符串来检查可变参数的数据类型。这样编译器就会在编译时用和 printf 一样的检查法则来确认可变参数是否正确了。

2022-10-08 17:55:44 599

转载 理解可变参数 va_list、va_start、va_arg、va_end 原理及使用方法

其中,type 是指要获取的参数的类型,比如 int,char * 等,arg_ptr 是指向参数列表的指针(va_list类型),prev_param 是指最后一个显式声明的参数,以用来获取第一个变长参数的位置。比如 printf 函数,就是根据第一个参数推导可选实参:如果第一个'%'后有一个's',说明后面要有第二个参数,类型是字符串;大多数带有变长参数的函数都利用显式声明的参数中的一些信息,来获取调用中提供的其他可选实参的类型和数目。c)va_arg 返回变长参数的值,第二个参数是该变长参数的类型。

2022-10-08 17:52:10 445

转载 printf、fprintf 和 freopen() 进行重定向

所谓流,通常是指程序输入或输出的一个连续的字节序列,设备(例如鼠标、键 盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的,在 C 语言中,所有的流均以文件的形式出现 —— 不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。当调试信息的量比较大,需要一些时间或者其他辅助工具来搜索过滤时,仅仅利用显示屏幕来输出调试信息是不够的,这时我们经常将这些信息输出到所谓的日志文件(log)中,之后再仔细的分析log文件来发现问题。不过,我们这里推荐使用的并不是初学 C 语言时使用的函数。

2022-09-28 15:03:12 673

原创 cmake / CMAKE_INSTALL_PREFIX

CMAKE_INSTALL_PREFIX 为 cmake 内置变量,用于指定 cmake 执行 install 目标时,安装的路径前缀。在设置完 install 的安装目录之后,执行 install 时可以通过 DESTINATION 直接指定安装目录之下的目录。要加在 PROJECT(< project_name>) 之后。2、设置 CMAKE_INSTALL_PREFIX 变量。1、在执行 cmake 时指定。

2022-09-28 13:24:21 6467

转载 fopen 与 open 的区别

如果从文件 IO 的角度来看,open 属于低级 IO 函数,fopen 属于高级 IO 函数,低级和高级的简单区分标准是:谁离系统内核更近,低级文件 IO 运行在内核态、高级文件 IO 运行在用户态。open 返回文件描述符,而文件描述符是 unix 系统下的重要概念,unix 下的一切设备都是文件的形式操作,如网络套接字、硬件设备等、当然包括操作普通正规文件(Regular File)。open 是 unix 系统调用函数(包括 Linux),返回的是文件描述符,它是文件描述符表里的索引。

2022-09-28 10:39:20 206

转载 linux 中 systemctl 详细理解及常用命令

systemd 是 Linux 系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。.service 文件定义了一个服务,分为[Unit]、[Service]、[Install] 三个小节。restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。.wants文件定义了要执行的文件集合,每次执行,.wants文件夹里面的文件都会执行。主要有四种类型文件.mount、.service、.target、.wants。

2022-09-27 16:12:19 1574

depot_tools.zip

是 chromium 源码管理工具,编译 libwebrtc 时必须使用到该工具。该代码是本人托哥们费了很大的力气才从官网下载的,全是泪呀。。。

2020-11-16

git-1.0.0.tar.gz

git 的第一个功能完整并且小巧的源码,里面使用了大量数据结构和算法,非常适合想借git源码学习上述知识、寻求进阶、深入了解git原理的童鞋。

2020-10-09

uSocketsStaticLib.rar

该工程是 vs2019 编译 usockets 源代码的工程,可以编译即可,无报错,配置过程如下:https://blog.csdn.net/itworld123/article/details/107225249

2020-07-09

libwebsockets-4.0.0.tar.gz

libwebsocket 是纯 C 写的库,支持websocket通信协议,本资源是官方 4.0 稳定版,可放心使用。

2020-07-03

TCPIP状态转换图.vsdx

博客《TCP/IP 状态转换图》中图片的原版文档,网址:https://blog.csdn.net/itworld123/article/details/102927949 。

2019-11-06

博客虚函数表的作用.rar

博客《Cpp 对象模型探索 —— 虚函数表作用》中图片的原版文档,网址:https://blog.csdn.net/itworld123/article/details/102894752 。

2019-11-05

含有虚基类的类的内存布局.vsdx

博客《Cpp 对象模型探索 —— 含有虚基类的类的内存布局》的图片原文档,网址:https://blog.csdn.net/itworld123/article/details/102890062。

2019-11-04

placement 实现原理.vsdx

博客《Cpp 对象模型探索 —— placement new 实现原理》,网址:https://blog.csdn.net/itworld123/article/details/102865319,图片原文档。

2019-11-01

Cpp 对象模型探索delete 内部调用过程分析代码和流程图.rar

博客《Cpp 对象模型探索 —— delete 内部调用过程分析》,网址:https://blog.csdn.net/itworld123/article/details/102735938,专用代码和流程图的原件。

2019-10-25

Cpp 对象模型探索new 实现原理代码和图.rar

博客《Cpp 对象模型探索 —— new 实现原理》,网址:https://blog.csdn.net/itworld123/article/details/102732922,专用流程图和测试代码。

2019-10-24

多重继承机制.vsdx

《C++对象模型探索 —— 多重继承虚函数表分析》博客的画图原文档。

2019-10-23

桶排序的时间复杂度的计算公式.docx

博客《数据结构与算法 —— 排序算法(3)》中的桶排序的时间复杂度计算公式推到过程。

2019-10-22

多态机制.vsdx

配合博客《C++对象模型探索 —— 继承关系下的虚函数手动调用》使用,原图文档。

2019-10-20

ACE-6.5.6.tar.bz2

ACE 官方源码,历时10几年的,几千人参与进来,产品非常值得学习并收纳到自己的代码仓库中!

2019-08-01

简单工厂模式实例 C++

代码完整地描述了简单工厂模式,包括工厂实例、产品抽象类、具体产品。已经过测试,编译没有问题。非常适合初学者使用。

2019-03-19

Borland 3.1 精简版

学习uCOSII必备C编译工具,同时可以深入理解编译的过程。

2019-01-30

Visual studio code上的Fanuc Karel的插件

该插件在Visual studio code使用,可以让kl文件中关键字高亮。

2018-10-26

VS2010下使用WinDbg通过dmp和pdb文件定位到崩溃位置

VS2010下使用WinDbg通过dmp和pdb文件定位到崩溃位置的工程集,里面包含了含有崩溃代码的dll工程和测试工程,已测试,可以直接使用。

2018-01-16

vs2010下dmp文件和pdb文件定位程序异常位置行号(函数内部)

vs2010下用dmp文件和pdb文件准确的定位到程序异常位置行号,已经经过测试,可以直接使用。

2018-01-12

vs2010下利用dmp和pdb文件分析异常行号

此代码用与分析代码中异常位置的实例,可以生成pdb文件、dmp文件,二者通过Windbg可以得到源码中异常行号。已测试,没有问题。

2018-01-12

普通成员函数、类成员函数和类静态成员函数实例(VS2010)

代码详解了普通成员函数、普通类成员函数和类静态成员函数的使用方法,已测试,可直接使用

2017-12-26

sizeof和strlen的区别

操作符sizeof和函数strlen的区别,代码已经过测试,可以直接使用!

2017-12-19

快速求幂和取余 C++

C++ 快速计算求幂和取余,代码已测试,可直接使用。。。

2017-12-15

类中静态成员变量和普通变量的区别——实例代码(VS2010)

类中静态成员变量和普通变量的区别——实例代码(VS2010),已测试,没有问题。

2017-12-11

空空如也

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

TA关注的人

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