现在位置: 首页 > 源码
2020-02-25 16:25 工业·编程 ⁄ 共 3463字 评论 1 条
Shell从标准输入或脚本中读取的每行称为一个管道行,它包含一个或多个由0个或多个管道字符(|)分隔的命令。对每一个管道行,进行12个步骤的处理。 结合上图,这里给出命令行的12个步骤。 1.  将命令行分成由固定元字符集分隔的记号 : SPACE, TAB, NEWLINE, ; , (, ), <, >, |, & 记号类型包括单词,关键字,I/O重定向符和分号。 2. 检测每个命令的第一个记号,查看是否为不带引号或反斜线的关键字。 如果是...
阅读全文
2020-02-09 11:16 工业·编程 ⁄ 共 9813字 暂无评论
1 OpenStack基础 1.1 OpenStack组件介绍 OpenStack是一个IaaS云计算平台开源实现,其对标产品为AWS。最开始OpenStack只有两个组件,分别为提供计算服务的Nova以及提供对象存储服务的Swift,其中Nova不仅提供计算服务,还包含了网络服务、块存储服务、镜像服务以及裸机管理服务。之后随着项目的不断发展,从Nova中根据功能拆分为多个独立的项目,如nova-volume拆分为Cinder项目提供块存储服务,nova-image拆分为Glance项目,提供...
阅读全文
2020-01-28 12:27 工业·编程 ⁄ 共 133字 暂无评论
因为JDK源码有依赖关系,因此保持一定的阅读顺序十分重要 java.lang Object String AbstractStringBuilder StringBuilder StringBuffer Integer Long Short Boolean Byte Double Float
阅读全文
2020-01-17 16:46 工业·编程 ⁄ 共 728字 暂无评论
Go 源码中,应该可分为与语言息息相关的部分,和官方提供的标准库。与语言实现相关的肯定是最难的,不是那么容易理解。可以先主要看标准库,其他的可以先大概了解下,待准备充足,再开始艰难的任务。 第一步,先把源码目录整体扫一遍,大概看看涉及了哪些模块,再挑自己喜欢的部分进行更深一步的学习与研究。建议每个库都看下官方文档,简单写个 hello world,才会体悟更深。如果连 hello world 都写不出来,这个模块的源码暂时...
阅读全文
2019-08-31 12:55 工业·编程 ⁄ 共 13965字 暂无评论
GDB, 即GNU调试器(GNU Debugger)。它诞生自开源软件基金会(Free Software Foundation)成立之初的第一批程序,并一直是免费和开源软件系统中的主要成员。最初GDB只是Unix系统上一个简单的源码层次的调试器,代码量不过数千行C代码,后来逐步发展壮大,拓展到包括嵌入式系统在内多个平台,代码量也达到了上百万行。 GDB在发展,不断地满足着新的用户需求并增加新的功能。这一章将我们将介绍GDB的整体内部结构,探讨一下GDB是如何...
阅读全文
2019-08-04 06:26 工业·编程 ⁄ 共 13130字 暂无评论
本文对bash的源码(版本:4.2.46(1)-release)进行简要分析。 数据结构 bash是用C语言写成的,其源码中只使用了少量的数据结构:数组,树,单向链表,双向链表和哈希表。几乎所有的bash结构都是用这些基本结构实现的。 源码中最主要的结构都定义在根目录下头文件command.h中。 单词 bash在不同阶段传输信息并处理数据单元的数据结构是WORD_DESC: typedef struct word_desc {   char *word;     &#...
阅读全文
2019-08-03 07:44 工业·编程 ⁄ 共 11523字 暂无评论
2. Poco日志的实现 2.1 日志模块应该实现的业务 在讨论日志的实现之前,先来聊一下日志模块应该实现那些业务。日志的业务说简单可以很简单,就是输出记录。说复杂也复杂,来看它的复杂性: 首先,日志的输出对象是不同的,有控制台输出,本地文件输出,网络文件输出,输出到系统日志等。假如是网络日志,日志库中其实还会包含网络模块,真是越来越复杂了。 第二,日志输出的格式和内容。不同用户关心的内容和喜欢的输出格式是不...
阅读全文
2019-08-01 07:41 工业·编程 ⁄ 共 11958字 暂无评论
日志对于程序来说是非常重要的,特别是对一些大型程序而言。一旦程序被发布,在现场日志几乎是程序员唯一可以获取程序信息的手段。Poco作为一个框架类库,提供了非常多的日志种类供程序员选用。文章将分两个部分,对于Poco日志进行介绍。第一部分主要以翻译Poco文档为主,第二部分则探讨Poco日志的实现。 1. Poco库日志接口 1.1  总体介绍          Poco中的日志模块主要涉及下列...
阅读全文
本节主要介绍Thread类和ThreadLocal机制的使用方法以及实现原理,以及对ThreadPool线程池支持的简单了解 Thread类使用方法 在C++语言中,我们通过_beginThreadex或CreateThread来创建线程(最好使用前者,关于两者区别和线程基础知识可参见《Windows核心编程》),并且提供一个原型为void MyFunc(void pParam)入口函数来完成任务。在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自...
阅读全文
Foundation中的SharedLibrary实现跨平台的dll动态加载。具体使用方法和简介可见:ShareLibrary官方文档 SharedLibrary导出函数 SharedLibrary类的简单用法 通过SharedLibrary可以实现函数导出和类导出,函数导出是最简单的,Dll提供方除了函数需要使用extern "C"声明之外,和普通C++编写的dll并无区别,在官方文档的例子中,dll使用方代码也很简单: // LibraryLoaderTest.cpp #include "Poco/SharedLibrary.h&q...
阅读全文