- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 计算机系统篇之虚拟内存(4):再探 mmap
本文通过示例的方式研究了参数 length 和 offset 对 mmap 函数行为的影响,从而更好地理解内存映射。
2020-12-07 16:56:57
482
原创 SNMP++ 04-SNMP中OBJECT IDENTIFIER的BER编码与解码及一些思考
阅读完本文你可以学到:(1)SNMP 中OBJECT IDENTIFIER的 BER 编码与解码代码实现。(2)在学习OBJECT IDENTIFIER 编解码过程中的一些思考(思考过后,懂得当涉及对无符号数组进行传输编码时,可以给出一个较佳的方案)。(3)snmp++-3.3.7 版本中函数asn_parse_objid 存在的 bug。一、理论知识1、T...
2020-10-21 11:35:55
3980
原创 SNMP++ 03-SNMP中字符串类型的BER编码与解码
阅读完本文你可以学到:(1)SNMP 中字符串型类型(包括基本类型 OCTER STRING 及其引申类型,如 IpAddress 等)的 BER 编码与解码。一、理论知识1、TagOCTER STRING对应的 Tag 为 0x04,IpAddress对应的 Tag 为 0x40。字符串类型的 Tag 占用一个八位组。2、LengthLength有三种形式...
2020-10-21 11:35:28
2252
原创 SNMP++ 02-SNMP中INTEGER的BER编码与解码
阅读完本文你可以学到:(1)BER 中INTEGER 的编码规则(其中1、2、3主要引自《ASN.1编码规则详解.doc》(作者不详,该文档可在优快云资源中搜索到))。(2)SNMP 中 INTEGER 的编码及解码实现(主要参考 net-snmp源码和 snmp++源码)。本文仅对编码相关函数进行了详细的解释。理解它,或许是我们走向自己实现 SNMP 协议的第一步。特别声明...
2020-10-21 11:34:50
3418
原创 SNMP++ 01-SNMP request time out问题的解决
一、问题描述我想编写一个与本地 SNMP 代理进行通信的客户端程序,由于 SNMP代理是位于本地主机上,于是 客户端中 target地址采用回环地址。另外,SNMP代理的共同体设置为“private-xxq”,权限设置为“只读”,可以接收的SNMP包指定为“本机”(这些配置如图1-1所示)。同样地,在原程序中也使用与本地SNMP代理相同的共同体。部分源码如下。我运行程序后,出现“SNMP r...
2020-10-21 11:34:30
5296
原创 SNMP++ 00-开发准备篇
阅读完本文你可以学到:(1)在 Windows 平台下如何搭建与 SNMP 代理进行通信的开发环境(支持 SNMP V3),并给出测试程序。一、搭建与 SNMP 代理进行通信的开发环境(支持 SNMP V3)(在 VS2013 下演示)1. 下载 SNMP++ 和LIBDESSNMP++官方下载地址:http://www.agentpp.com/download.html#...
2020-10-21 11:34:01
10689
原创 计算机系统篇之异常控制流(9):异常控制流 FAQ
本文描述了异常控制流相关的常见问题,比如:1)孤儿进程的父进程一定是 init 进程吗?2)子进程停止时,内核一定会发送 SIGCHLD 信号给父进程吗?3)...
2020-10-19 17:16:57
193
原创 计算机系统篇之异常控制流(7):利用 fork 和 execve 实现一个简易的 shell 程序
本文描述了一个简易 shell 的完整实现过程(你可以利用它在前台或后台执行程序),从而掌握 shell 程序的实现原理。
2020-10-19 17:08:41
1268
原创 计算机系统篇之异常控制流(6):如何正确地回收子进程
本文描述了回收子进程的两种方式:堵塞方式和非堵塞方式,并介绍了如何处理信号中断,从而保证正确地回收子进程。
2020-10-19 17:07:19
294
原创 计算机系统篇之异常控制流(4):如何正确地让调用线程休眠一段时间
直接调用 sleep/usleep/nanosleep 等函数在什么情况下会导致程序的实际行为不符合预期?std::this_thread::sleep_for 函数在任何情况下都是正确的吗?本文让你学会让调用线程睡眠一段时间的正确做法。
2020-10-19 17:05:39
334
原创 计算机系统篇之链接(11):为什么要避免在 C/C++ 中使用全局变量
本文从符合解析的角度解释了 C/C++ 中避免使用全局变量的原因,并介绍了如何防止误用全局变量的手段。
2020-05-16 19:39:58
1164
原创 计算机系统篇之链接(10):.bss、.data 和 .rodata section 之间的区别
本文通过示例剖析了 .bss、.data 和 .rodata sections 之间的区别。
2020-05-08 22:29:44
3089
原创 计算机系统篇之链接(5):静态链接(下)——重定位
本文描述了 Linux 系统中重定位的工作原理,并介绍了 X86_64 中常见的重定位类型。
2020-04-19 17:26:45
2686
1
原创 计算机系统篇之链接(4):静态链接(中)——符号解析
本文描述了 Linux 系统中符号解析的工作原理,并通过示例展示了符号解析过程可能引起的链接期错误和运行期错误。
2020-04-15 12:44:12
964
2
原创 计算机系统篇之链接(2):目标文件
本文描述了目标文件的基础知识,其中详细介绍了 ELF-64 目标文件格式,并提供了 Linux 系统中目标文件处理工具——READELF 和 OBJDUMP 的常见用法。
2020-04-14 19:04:29
587
原创 计算机系统篇之链接(1):gcc/g++的编译流程
本文描述了 gcc/g++ 编译系统的工作流程,并提供了手动地完成各阶段的不同方法,从而达到更好地理解程序翻译过程的效果。
2020-04-13 20:15:51
578
原创 性能优化篇(3):NEON快速入门指南
本文介绍了一些 NEON Intrinsics,涉及:向量赋值、访问向量、存储向量以及向量算术逻辑运算。
2019-11-27 21:01:23
9155
原创 性能优化篇(1):几种简单的访存优化手段
本文描述了几种简单的但易被忽略的访存优化手段,并从高速缓存的角度定量分析这些手段提升程序性能的原理。
2019-11-12 15:57:27
19629
3
snmp++示例____
2016-05-01
snmp++v3.2.25.tar.gz及libdes-l-4.01a.tar.gz
2016-05-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人