2019-08-06 06:30
⁄ 工业·编程
⁄ 共 2132字
cmake是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中所产生的衍生品。后来经过发展,最终形成体系,在2001年成为一个独立的开放源代码项目。其官方网站是www.cmake.org,可以通过访问官方网站来获得更多关于cmake的信息,而且目前官方的英文文档比以前有了很大的改进,可以作为实践中的参考手册。
cmake的流行离不开KDE4的选择。KDE开发者在使用autotools近10年之后,终于决定为KDE4项目选择一个新的工程构建...
CMake阅读全文
2019-08-05 06:26
⁄ 工业·编程
⁄ 共 1691字
CMake简介
CMake是一个工具,可以帮助我们实现跨平台开发的工具,在实际开发中可以发挥重要的作用。
我们先图解一下CMake的作用:
假如我们现在有一个在不同平台都有共享代码的C++的工程,这些平台分别是:Windows、OSX、Linux,在这些平台使用的IDE分别是:Visual Studio、Xcode,现在有一份公共的代码:one.cpp,已经部署在三个平台上。
现在,我们需要新加一个 bar.cpp,正常来说,我们需要在每一个平台下面按照相应的规则...
CMake阅读全文
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; ...
bash, 源码阅读全文
2019-08-03 07:44
⁄ 工业·编程
⁄ 共 11523字
2. Poco日志的实现
2.1 日志模块应该实现的业务
在讨论日志的实现之前,先来聊一下日志模块应该实现那些业务。日志的业务说简单可以很简单,就是输出记录。说复杂也复杂,来看它的复杂性:
首先,日志的输出对象是不同的,有控制台输出,本地文件输出,网络文件输出,输出到系统日志等。假如是网络日志,日志库中其实还会包含网络模块,真是越来越复杂了。
第二,日志输出的格式和内容。不同用户关心的内容和喜欢的输出格式是不...
POCO, 开源, 源码阅读全文
2019-08-01 07:41
⁄ 工业·编程
⁄ 共 11958字
日志对于程序来说是非常重要的,特别是对一些大型程序而言。一旦程序被发布,在现场日志几乎是程序员唯一可以获取程序信息的手段。Poco作为一个框架类库,提供了非常多的日志种类供程序员选用。文章将分两个部分,对于Poco日志进行介绍。第一部分主要以翻译Poco文档为主,第二部分则探讨Poco日志的实现。
1. Poco库日志接口
1.1 总体介绍
Poco中的日志模块主要涉及下列...
POCO, 开源, 源码阅读全文
2019-07-31 07:00
⁄ 工业·编程
⁄ 共 25896字
本节主要介绍Thread类和ThreadLocal机制的使用方法以及实现原理,以及对ThreadPool线程池支持的简单了解
Thread类使用方法
在C++语言中,我们通过_beginThreadex或CreateThread来创建线程(最好使用前者,关于两者区别和线程基础知识可参见《Windows核心编程》),并且提供一个原型为void MyFunc(void pParam)入口函数来完成任务。在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自...
POCO, 开源, 源码阅读全文
2019-07-30 16:10
⁄ 工业·编程
⁄ 共 17764字
POCO C++是一个开源的C++类库的集合,它主要提供简单的、快速的网络和可移植应用程序的C++开发,这个类库和C++标准库可以很好的集成并填补C++标准库的功能空缺。POCO库的模块化、高效的设计及实现使得POCO特别适合嵌入式开发
模块说明
POCO由4个核心库及若干个附加库组成。核心库是:Foundation、XML、Util和Net。其中的两个附加库是:NetSSL,为Net 库中的网络类提供SSL 支持;Data,用来以统一的形式访问不同的SQL 数据库。PO...
POCO, 源码阅读全文
2019-07-30 06:50
⁄ 工业·编程
⁄ 共 14626字
Foundation中的SharedLibrary实现跨平台的dll动态加载。具体使用方法和简介可见:ShareLibrary官方文档
SharedLibrary导出函数
SharedLibrary类的简单用法
通过SharedLibrary可以实现函数导出和类导出,函数导出是最简单的,Dll提供方除了函数需要使用extern "C"声明之外,和普通C++编写的dll并无区别,在官方文档的例子中,dll使用方代码也很简单:
// LibraryLoaderTest.cpp
#include "Poco/SharedLibrary.h&q...
POCO, 开源, 源码阅读全文
2019-07-29 06:52
⁄ 工业·编程
⁄ 共 1726字
最近想读读Python源码,任何东西学习方法基本都是一样的,先从总体框架进行了解,再从自己侧重的方面逐步深入。
1. Python总体架构
左边是Python提供的大量的模块、库以及用户自定义的模块。比如在执行import os时,这个os就是Python内建的模块,当然用户还可以通过自定义模块来扩展Python系统。
右边是Python的运行时环境,包括对象/类型系统(Object/Type structures)、内存分配器(Memory Allocator)和运行时状态信息(Cu...
Python, 源码阅读全文
2019-07-28 05:48
⁄ 工业·编程
⁄ 共 2004字
尽管早期类型的网络***检测系统一直要追溯到20世纪80年代早期,但当Martin Roesch创建他的免费和开源IDS系统SNORT时,IDS的概念起飞了。由于其轻巧的设计和灵活的部署选项,Snort的用户群在接下来的几年中迅速增长。2001年,Martin Roesch创建了Sourcefire公司(2013年被思科收购),使用基于SNORT的商业IDS产品。SNORT的原始免费和开源版本仍然可用,目前广泛用于全球网络。与此同时,一些竞争对手在开源IDS领域取得了进展,其...
IDS, Snort, Suricata, 网络安全阅读全文