自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(562)
  • 资源 (24)
  • 收藏
  • 关注

转载 wchar_t 、UTF-8、UTF-16的转换方法

Unicode 有两套编码集,UCS-2 和 UCS-4。Windows 的内部其实是用的 UCS-2 标准,并用 UTF-16 来实现。而非 Windows 系统大多采用了 UTF-8 实现。 大家都知道在windows上wchar_t是2个字节表示,而在Linux上wchar_t是4个字节表示的。这样写跨平台的程序时,就会不统一。下面是我用到的几个函数,wchar_t与UTF-8编码之间的转换和UTF-16和wchar_t之间的转换。#ifdef WINDOWS#includ...

2022-02-25 15:26:58 2745

转载 字符编码(ucs2 ucs4 utf)

源地址:http://blog.charlee.li/unicode-intro/最近一直在忙点私活,又好久没写blog了,再不写点的话二月份就又要以单篇文章结束了。 前一阵子一直在研究Unicode,索性把研究结果介绍一下吧。可能大家都听说过 Unicode、UCS-2、UTF-8 等等词汇,但它们具体是什么意思, 是什么原理,之间有什么关系,恐怕就很少有人明白了。 下面就分别介绍一下它们。______________________________基本知识介绍Unicode之前,首先

2022-02-22 16:31:09 2517

转载 Linux网络编程:原始套接字 SOCK_RAW, IPV6 rawsocket

https://stackoverflow.com/questions/31419727/how-to-send-modified-ipv6-packet-through-raw-socket比较新的内核才支持 1234567 socket(fd, SOCK_RAW, IPPROTO_UDP); // 指定 TCP/UDP/ICMPint val = 1;ret = setsockopt(test->state.sockfd, IPPROTO

2021-06-04 15:19:55 1876 1

转载 TinyXML中文文档,TinyXPath

TinyXML中文文档,TinyXPathhttp://www.cnblogs.com/flying_bat/archive/2007/11/10/955327.htmlhttp://tinyxpath.sourceforge.net/--------------------------------------------------TinyXML中文文档译注:本文是TinyXML 2.5.2版本Document的中文文档,经原作者Lee Thomason同意由hansen翻译,如有误译

2020-12-08 20:31:38 580

原创 windows 文件描述符 _open_osfhandle

最近我们有一个需求,要求将windows控制台程序中通过printf打印的字符串信息全部重定向到另一个远程控制终端上去;并且也将标准输入也重定向到远程终端。重定向信息的传输用TCP传输。TAG:printf重定向 最近我们有一个需求,要求将windows控制台程序中通过printf打印的字符串信息全部重定向到另一个远程控制终端上去;并且也将标准输入也重定向到远程终端。重定向信息的传输用TCP传输。解决这个问题,其实就是要求能够截获printf的字符数据,使其不在控制台上打印,而是通过s...

2020-11-20 13:46:30 1852

转载 RFC6020 - YANG语言标准中文

RFC6020 - YANG语言标准中文2016年08月05日 14:49:04阅读数:12297YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)该标准脱胎于草案draft-ietf-netmod-yang,该草案从2008年5月开始,先后经历了13个草案版本,最终于2010年8月成为建议标准(Proposed Standard)。本文档的翻译时间开始于2016年5月12日。

2020-10-13 20:26:39 5361

转载 ANSI 控制码

转载:之前一直好奇如何在终端输出不同颜色的文本以及如何任意改变终端光标的位置,今天才知道原来用到了 ANSI 控制码。参考资料:维基百科 Ubuntu手册控制字符控制字符,即 ASCII 控制码。ASCII 码小于 32 的字符都是控制字符。在 ASCII 中常用的控制字符包括:名称 含义 ASCII 码 键盘映射 作用 BEL bell 0x07 Ctrl+G 铃声 BS backspace 0x08 Ctr

2020-10-12 09:57:16 2381

转载 C++11:可变参数的模板

概述在C++11之前,类模板和函数模板只能含有固定数量的模板参数。C++11增强了模板功能,允许模板定义中包含0到任意个模板参数,这就是可变参数模板。可变参数模板和普通模板的语义是一样的,只是写法上稍有区别,声明可变参数模板时需要在typename或class后面带上省略号“…”:template<class ... T> void func(T ... args)//T叫...

2019-07-07 22:27:22 2128

转载 Visual Studio UTF-8 无 BOM 一站式解决办法

一:解决自己源码的编码格式方法A(推荐):工具->扩展和更新->联机->搜索 forceutf8 选择No BOM 的那一个。在你保存文件的时候,这个插件会将文件自动保存为UFT8 无 BOM。方案B:文件-> 高级保存选项->选择 UFT-8 无签名(下拉框最下面倒数几个), 这种方案需要手动对每一个文件处理。二:设定编译器 在编译 链接 时...

2019-04-08 10:13:07 6324 6

转载 Gtest源码剖析:1.实现一个超级简单的测试框架xtest

下面的代码模仿gtest实现,主要说明了以下两点:ASSERT_* 和 EXPECT_*系列断言的原理和作用. gtest是怎样通过宏自动注册测试代码让其自动运行的. 1 #include &lt;iostream&gt; 2 #include &lt;string&gt; 3 #include &lt;memory&gt; 4 #include &lt;vector&gt;...

2019-02-26 09:34:10 625

转载 C++11 中的std::function和std::bind

1. 可调用对象可调用对象有一下几种定义:是一个函数指针,参考 C++ 函数指针和函数类型; 是一个具有operator()成员函数的类的对象; 可被转换成函数指针的类对象; 一个类成员函数指针;C++中可调用对象的虽然都有一个比较统一的操作形式,但是定义方法五花八门,这样就导致使用统一的方式保存可调用对象或者传递可调用对象时,会十分繁琐。C++11中提供了std::functio...

2019-02-26 09:04:34 247

转载 bind原理图释

(原文:http://blog.think-async.com/2010/04/bind-illustrated.html)本文解释了bind 是如何工作的。为了清晰,我对图中的语法作了一些简化(例如,省略函数调用操作符的参数类型),并且简化了 bind 的实现.1. bind 可以用来将用户提供的需要一个参数的函数转换成不需要参数的函数对象。绑定的值(在这个例子中是123)存储在函数对象...

2019-02-26 09:00:18 405

转载 MSVC中C++ UTF8中文编码处理探究

字符编码的问题,上大学那会儿就遇到过,一直都是云里雾里,没太搞清楚。最近又遇到了问题,想在C++的控制台上输出Utf-8编码的汉字字节流。尝试了好多次都是乱码,后来花了些时间查查资料,又和同事交流了一下,算是把C++上对于UTF8编码的处理大概摸清楚了。 字符集   先说一个名词:字符集,没听过的先百度一下,其实就是一种将字符编码的格式,像我们常说的ASCII,UTF8,GBK都是常用的字...

2019-01-16 10:09:08 1465 1

转载 ASN.1 key structures in DER and PEM

Format Name Description PKCS #7 Cryptographic Message Syntax Standard A PKCS #7 file can be used to store certificates, which is a SignedData structure without data (just the certificate...

2019-01-11 15:56:24 342

转载 用实例给新手讲解RSA加密算法

   RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。   RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Ri...

2019-01-08 14:02:36 463

转载 ring3层一种占用文件的方法(DuplicateHandle以后,把占用文件的句柄丢给系统进程,导致被占用)

前段时间,一个测试工程师问我关于怎样长时间的占用一个文件,而使别的程序无法再访问这个文件,想起以前很多病毒木马经常劫持hosts文件不放,除非你找到占用文件的程序,并强行结束掉,否则怎么也访问不了hosts文件,病毒通过劫持这个文件来达到劫持你的域名的目的,很有可能你输入了www.baidu.com,访问的却是一个带颜色的网站,并稀里哗啦在后台下了上百个病毒,扯远了,呵呵。    其实sdk里...

2018-12-15 10:39:50 325 1

转载 谨慎使用多线程中的fork

 前言在单核时代,大家所编写的程序都是单进程/单线程程序。随着计算机硬件技术的发展,进入了多核时代后,为了降低响应时间,重复充分利用多核cpu的资源,使用多进程编程的手段逐渐被人们接受和掌握。然而因为创建一个进程代价比较大,多线程编程的手段也就逐渐被人们认可和喜爱了。记得在我刚刚学习线程进程的时候就想,为什么很少见人把多进程和多线程结合起来使用呢,把二者结合起来不是更好吗?现在想想当初...

2018-12-15 09:28:44 258

转载 绝对干货!初学者也能看懂的DPDK解析

本文由Willko发表于云+社区专栏一、网络IO的处境和趋势从我们用户的使用就可以感受到网速一直在提升,而网络技术的发展也从1GE/10GE/25GE/40GE/100GE的演变,从中可以得出单机的网络IO能力必须跟上时代的发展。1. 传统的电信领域IP层及以下,例如路由器、交换机、防火墙、基站等设备都是采用硬件解决方案。基于专用网络处理器(NP),有基于FPGA,更有基于AS...

2018-11-26 10:52:56 3335

转载 SpinLock 锁实现

原文地址:http://locklessinc.com/articles/locks/ 翻译时与原文略有简化,并增加了一些注释方便理解大多数的并行编程都或多或少的要用到锁,锁可以提供互斥的访问来保证数据的一致性。没有锁的话,多线程并发很可能同时修改同一个数据结构。而无锁算法往往需要仔细复杂的设计,否则程序会进入未预期的状态导致系统崩溃。而无锁算法的设计非常困难,大部分的程序都会用到锁。如果...

2018-10-26 14:01:45 575

转载 VS2010对C++11的支持程度

#include &lt;cassert&gt;#include &lt;cctype&gt;#include &lt;cerrno&gt;// #include &lt;cfenv&gt; // 不支持#include &lt;cfloat&gt;// #include &lt;cinttypes&gt; // 不支持#include &lt;cstdint&gt;#include

2018-10-11 13:56:55 4706

转载 支持 C++11/14/17 功能(现代 C++)

https://msdn.microsoft.com/zh-cn/library/hh567368.aspx若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。本文描述了 Visual C++ 中的 C++11/14/17 功能。 本文内容 C++11 功能列表 C++11 核心语言功能...

2018-10-11 13:55:52 1271

转载 短信开发

1.1. 基本知识短信开发指通过串口 at 命令驱动短信猫进行短信发送和接收操作。在 java 中 主要使用 javax.comm 包进行开发,sun 公司网上地址 : http://java.sun.com/products/javacomm/使用工具 : windows 自带超级终端 短信猫操作分为三种模式: block,pdu 和 Text短信传送有三种编码: 7...

2018-07-26 09:45:19 826

转载 3GPP 协议导读

24.008 Mobile radio interface Layer 3 specification; Core network protocols; Stage 3 Must Have 這是我最常用到的spec之一,對我而言也是最入門的一份。大多數spec是用來查的,但是這份從第四章開始是可以一頁 頁讀過的。它定義了Mobility Man...

2018-07-24 21:56:19 8474 2

转载 Unicode 和 UTF-8 有什么区别?

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。 他们把其中的编...

2018-07-11 19:54:41 253

转载 【善用工具】程序性能分析Gperftools初探(libwind+pprof+Kcachegrind)

gperftools性能分析通过抽样方法完成,默认是1秒100个样本,so,一个样本是10毫秒,即时间单位是10毫秒. 之所以要在这里特别说明,是因为需要注意到:如果程序运行时间不到10ms,那么得到的结果可能会和开始执行的时候不同.0.系统信息sjc@sjc-pc:~/baidu/gperftool/test$ uname -aLinux sjc-pc 3.19.0-25-generic #2...

2018-07-05 20:43:57 2608

转载 GObject 对接口的模拟

在文档 [1] 中谈到接口古已有之,但是类的继承赋予了它一些新的概念。本文结合实例,学习如何使用 GObject 库所提供的接口类型来表达这些概念。接口声明下面的代码(文件名 my-iusb.h)声明了一个叫做 MyIUsb 的接口,My 是项目名,I 是 interface 的首字母的大写,Usb 表示接口的名称。MyIUsb 就表示在“My”项目里,Usb 是一个 Interface。?123...

2018-06-27 09:45:49 330

转载 GObject 对接口的模拟

在文档 [1] 中,我们构造了一个 KbBibtex 类,其构造过程看似挺复杂,但实际上只需要动手尝试一下,即可明白 GObject 子类化的各项步骤的意义与作用。许多事物之所以被认为复杂,是因为大家在观望。本文沿用文档 [1] 中的那个 KbBibtex 示例,学习如何对其进行子类化,构造新类,即面向对象程序设计方法中类的继承。文献有很多种类写过论文的人都知道,参考文献的形式有许多种类,例如期刊...

2018-06-27 09:37:17 223

转载 温故而知新

也许很多人将孔子所说的“温故而知新”理解为:温习学过的知识,从中获得新的领悟。但是,我更倾向于另一种解释:温习学过的知识,继续学习新的知识。本文借助一个更加平易和现实的示例用以温习文档 [1-3] 中的 GObject 知识,并进一步学习类与对象的方法。Bibtex 文献数据格式使用 TeX 写论文,免不了要用 Bibtex 处理参考文献,像 google scholar 这样的网站,直接提供 b...

2018-06-27 09:36:54 412

转载 GObject 子类私有属性的外部访问

之前,写了一篇 GObject 劝学的文章 [1],还有两篇有关 GObject 子类对象数据封装的文章 [2, 3]。虽然,创建一个 GObject 子类对象需要一些辅助函数和宏的支持,并且它们的内幕也令人费解,但是只要将足够的信任交托给 GObject 开发者,将那些辅助函数和宏当作“语法”糖一样享用,一切还是挺简单的。至于细节,还是等较为全面的掌握 GObject 库的用法之后再去挖掘!现在...

2018-06-26 15:00:22 214

转载 GObject 子类对象的私有属性模拟

转载自 http://garfileo.is-programmer.com/2011/2/28/data-hiden.24848.html上一篇文章“使用 GObject 库模拟类的数据封装形式”讲述了 GObject 子类化过程,本文以其为基础,进一步讲述如何对数据进行隐藏,即对面向对象程序设计中的“私有属性”概念进行模拟。非类类型数据的隐藏第一个问题,可以称之为非类类型数据结构的隐藏,因为 P...

2018-06-26 14:48:09 194

转载 使用 GObject 库模拟类的数据封装形式

转载自 http://garfileo.is-programmer.com/2011/2/27/the-analog-of-classed-type-based-gobject.24798.html事实上,有关 GObject 库的学习与使用,GObject 库参考手册提供了一份简短且过于晦涩的指南。如果你能够理解它,那么完全可以无视这篇以及后续的几篇文章。倘若没有明白那份指南,那么建议最好能克制...

2018-06-26 14:39:06 135

转载 你应该知道的 RPC 原理

在校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)其它团队要使用...

2018-06-22 09:15:41 200

转载 SCTP编程

Stream Control Transmission ProtocolStream Control Transmission Protocol (SCTP) is a reliable transport protocol that provides services similar to the services provided by TCP. In addition, SCTP provi...

2018-05-28 18:03:39 1264

转载 以DxR算法思想为基准设计出的路由项定位结构图解

首先,题目中说是路由项定位结构而非查找结构,说的是,使用这个结构,以一个IPv4地址作为输入的时候,在得到下一跳的过程中,将不会有任何的查找操作,仅仅不断使用索引定位就可以了。为了先有一个直观上的认识,先给出查找结构图:1.先从多级索引说起在我的那次失败经历中,我企图完全模仿MMU来设计路由查找结构,结果失败了。其实现在想想,也不失败,因为路由项的数目毕竟是有限的,对于整个4G个IPv4地址来讲,...

2018-05-26 13:54:37 316

转载 路由之路由表查找算法概述-哈希/LC-Trie树/256-way-mtrie树

引:路由是互联网的一个核心概念,广义的讲,它使分组交换网的每个节点彼此独立,通过路由耦合在一起,甚至在电路交换网中,虚电路的建立也依赖路由,路由就是网络中数据通路的指向标。狭义的讲,路由专指IP路由,它支撑着整个IP网络。     由于IP是数据报网络,它是不建立连接的,因此IP分组是一跳一跳被转发,通路是通过路由信息一跳一跳的被打通的,因此路由直接关系到整个基于IP的网络的连通性。由于IP协议没...

2018-05-26 11:32:23 6938 1

转载 解读5G非独立组网(NSA)方案

5G NR架构演进分为:NSA(非独立组网)和SA(独立组网)。在2016年3GPP釜山会议上,德国电信提出了12种组网选项。其中选项3/3a/3x、7/7a/7x、4/4a为非独立组网构架,选项2、5为独立组网构架。▲图片来源NOKIA对于NSA部署,可选择共站部署和非共站部署两种方式。▲5G基站和4G基站共站与非共站部署方式5G基站(gNB)可作为宏站,与现有的LTE基站(eNB)共站部署,提...

2018-05-12 11:36:00 43072 1

转载 使用def文件简化dll导出

在C++中,我们可以通过 __declspec(dllexport) 将函数导出为Dll中供其它程序使用,例如:    _declspec(dllexport) int add(int a, int b);在这种方式下,如果调用该dll的是一个c++程序(同一个编译器的版本)是没有问题的。但是,如果调用该dll是一个其它语言的程序(如C#、VB),则会出错。究其原因,是因为在C++中存在函数的重载...

2018-05-12 11:20:29 336

转载 软件质量之道:SourceMonitor

有些事非做不可,并非为了幸福,而是缓解痛苦,因为不做,则更痛苦——这便是无奈。夏中义 《文心独白》 1 引子博客又有一阵子没更新了,最近认真思考了阿里上市的成功之处:选择和坚持。其实人生并没有绝对的对与错,也没有绝对的成功与失败。正如“有些人活着,他已经死了”云云,我总是拿对与错来让自己选择,其实就是根本的错误。决定走一条路,就继续走下去,终点虽然不知道在哪里,那就尽情享受沿途的风景,以及珍惜与身...

2018-04-27 10:08:58 617

转载 运营商与BAT的区别

BAT其实也是运营商,运营的是网站,CM/CU/CT(以下简称MUT)运营的是管道。MUT的运营特色是本地化,管道建到哪里,就覆盖到哪里的用户,地域性强。BAT的运营特色是一点提供,全网覆盖;借助电信运营商的管道,一个网站就可以覆盖全国乃至全球的用户。MUT由于本地化服务,而用户是全球分布和全球流动的,因此需要考虑联合同行实现漫游服务,以及需要与同行互联互通。BAT由于具备全球服务覆盖面和全网端到...

2018-04-13 17:19:05 959

转载 解读开源软件七种盈利模式

法律条款都公开 但律师照样赚钱!医学知识都公开 但医生照样赚钱!软件行业由于其技术的特殊性,软件存在源代码与二进制代码之分,存在编译过程。导致源代码一直成为盈利的一个新卖点。但任何行业都一样,都存在一个发展和变迁的过程。软件行业也是如此。如今开源软件已经在全球范围内迅猛发展。开源产品已经完全可以替代现有商业软件。包括操作系统Linux,浏览器FireFox,开源ERP/CRM信息化方案,服务器应用...

2018-04-13 15:56:16 3961

SFTP 协议 2013V0.3版本

SFTP协议文档

2022-10-08

Oran V0.8规范文档

Oran V0.8规范文档 O-RAN-WG4.CUS.0-v08.00.pdf O-RAN.WG4.CONF.0-v05.00.pdf O-RAN-WG4.MP.0-v08.00.pdf O-RAN.WG4.MP-YANGs-v08.00.zip

2022-04-12

confd-basic-7.6.linux.x86_64

1. 解压 sh confd-basic-7.6.linux.x86_64.installer.bin /home/tmpconfd 2. 编译crypto.so 修改 confd-basic-7.6.linux.x86_64/confd-basic-7.6/libconfd/src/include.mk cd confd-basic-7.6.linux.x86_64/confd-basic-7.6/libconfd/crypto make #生成基于libcrypto.so.1.0版本的crypto.so cp confd-basic-7.6.linux.x86_64/confd-basic-7.6/libconfd/crypto/crypto.so /home/tmpconfd/lib/confd/lib/core/crypto/priv/lib/crypto.so 拷贝编译好的libcrypto.so.1.0.0 到 /usr/lib64/libcrypto.so.1.0.0

2022-03-31

yencap and yencap-manager

yencap

2022-03-31

IEEE-802.11i

Guide to IEEE 802.11i - Establishing Robust Security Networks.pdf S10_802.11i Overview-jw1.pdf IEEE-802.11i-re.pdf ieee 802.1X.pdf

2014-12-24

ipv6相关文档

IPv6 Introduction and Configuration.pdf IPv6+Core+Protocols+Implementation.pdf Morgan.Kaufmann.IPv6.Advanced.Protocols.Implementation.pdf Running.IPv6.2006.pdf 《IPV6详解》下一代互联网络协议.pdf

2014-12-24

Tuning Red Hat Enterprise Linux

Tuning Red Hat Enterprise Linux linux服务器调优

2014-12-24

IETF Protected EAP Protocol

Protected EAP Protocol (PEAP) Version 2.txt

2014-11-05

Ethernet vendor codes and well-known MAC addresses

# The IEEE public OUI listing available from: # <http://standards.ieee.org/develop/regauth/oui/oui.txt> # <http://standards.ieee.org/develop/regauth/iab/iab.txt> # <http://standards.ieee.org/develop/regauth/oui36/oui36.txt> # # Michael Patton's "Ethernet Codes Master Page" available from: # <http://www.cavebear.com/archive/cavebear/Ethernet/Ethernet.txt> # # This is Wireshark 'manuf' file, which started out as a subset of Michael # Patton's list and grew from there.

2014-11-05

C++ Hackers Guide.pdf

C++ Hackers Guide.pdf Table of Contents Real World Hacks................................................................................................9 Hack 1: Make Code Disappear..........................................................................10 Hack 2: Let Someone Else Write It...................................................................12 Hack 3: Use the const Keyword Frequently For Maximum Protection.............12 Hack 4: Turn large parameter lists into structures..........................................14 Hack 5: Defining Bits.........................................................................................16 Hack 6: Use Bit fields Carefully........................................................................18 Hack 7: Documenting bitmapped variables......................................................19 Hack 8: Creating a class which can not be copied............................................21 Hack 9: Creating Self-registering Classes.........................................................22 Hack 10: Decouple the Interface and the Implementation...............................25 Hack 11: Learning From The Linux Kernel List Functions...............................27 Hack 12: Eliminate Side Effects........................................................................29 Hack 13: Don't Put Assignment Statements Inside Any Other Statements......30 Hack 14: Use const Instead of #define When Possible.....................................31 Hack 15: If You Must Use #define Put Parenthesis Around The Value.............32 Hack 16: Use inline Functions Instead of Parameterized Macros Whenever Possible........................................................................................................33 Hack 17: If You Must Use Parameterized Macros Put Parenthesis Around The arguments....................................................................................................34 Hack 18: Don't Write Ambiguous Code.............................................................34 Hack 19: Don't Be Clever With the Precedence Rules......................................35 Hack 20: Include Your Own Header File...........................................................36 Hack 21: Synchronize Header and Code File Names.......................................37 Hack 22: Never Trust User Input......................................................................38 Hack 23: Don't use gets.....................................................................................40 Hack 24: Flush Debugging................................................................................41 Hack 25: Protect array accesses with assert....................................................42 Hack 26: Use a Template to Create Safe Arrays...............................................45 Hack 27: When Doing Nothing, Be Obvious About It........................................46 Hack 28: End Every Case with break or /* Fall Through */...............................47 Hack 29: A Simple assert Statements For Impossible Conditions....................47 Hack 30: Always Check for The Impossible Cases In switches.........................48 Hack 31: Create Opaque Types (Handles) Which can be Checked at Compile Time.............................................................................................................49 Hack 32: Using sizeof When Zeroing Out Arrays..............................................51 Hack 33: Use sizeof(var) Instead of sizeof(type) in memset Calls....................51 Hack 34: Zero Out Pointers to Avoid Reuse......................................................53 Hack 35: Use strncpy Instead of strcpy To Avoid Buffer Overflows.................54 Hack 36: Use strncat instead of strcat for safety..............................................55 ...... ......

2010-12-10

ebtables-iptables interaction on a Linux-based bridge.mht

ebtables-iptables interaction on a Linux-based bridge.mht

2010-12-10

ebtables-v2.0.9-2.tar.gz

ebtables-v2.0.9-2.tar.gz from http://ebtables.sourceforge.net

2010-12-10

Advanced Bash-Scripting Guide

Advanced Bash-Scripting Guide.pdf

2010-12-06

Traffic-Control-HOWTO.pdf

Traffic-Control-HOWTO.pdf

2010-12-06

Bash-Prompt-HOWTO

Bash-Prompt-HOWTO.pdf

2010-12-06

Linux Advanced Routing and Traffic Control HOWTO en

英文版 参考http://lartc.org/

2010-12-02

Linux Andvanced Routing and Traffic Control

Linux高级路由和流量控制howto 经典流量控制之作,不用多说

2010-12-02

WLAN基础知识 WLAN基础知识

WLAN基础知识 802.11协议族 WLAN设备 WLAN的典型部署

2010-06-29

Linux Routing.chm

Linux Routing.chm 学习Linux路由

2009-03-18

Advanced Linux Networking

Advanced Linux Networking.chm

2009-03-18

Advanced Linux Programming

Advanced Linux Programming

2009-03-18

深入浅出MFC.pdf

深入浅出MFC(第二版) 目录 第0章 你一定要知道(导读) 这本书适合谁 你需要什么技术基础 你需要什么软硬件环境 让我们使用同一种语言 本书符号习惯 本书例程的取得 范例程序说明 与前版本之差异 如何联络作者 第一篇 勿在浮砂筑高台 第1章 Win32程序基本概念 Win32程序开发流程 需要什么函数库(.LIB) 需要什么头文件(.H) 以消息为基础,以事件驱动之(message based,event driven) 一个具体而微的Win32程序 程序进入点WinMain 窗口类之注册与窗口之诞生 消息循环 窗口的生命中枢:窗口函数 消息映射(Message Map)的雏形 对话框的运行 模块定义文件(.DEF) 资源描述档(.RC) Widnows程序的生与死 空闲时间的处理:OnIdle Console程序 Console程序与DOS程序的差别 Console程序的编译链接 JBACKUP:Win32 Console程序设计 MFCCON:MFC Console程序设计 行程与线程(Process and Thread) 核心对象 一个行程的诞生与死亡 产生子行程 一个线程的诞生与死亡 以_beginthreadex取代CreateThread 线程优先级(Priority) 多线程程序设计实例 第2章 C++的重要性质 类及其成员——谈封装(encapsulation) 基类与派生类:谈继承(Inheritance) this指针 虚拟函数与多态(Polymorphism) 类与对象大解剖 Object slicing与虚拟函数 静态成员(变量与函数) C++程序的生与死:兼谈构造函数与解构函数 四种不同的对象生存方式(in stack、in heap、global、local static) 执行期类型信息(RTTI) 动态生成(Dynamic Creation) 异常处理(Exception Handling) Template Template Functions Template Classes Template的编译与链接 第3章 MFC六大关键技术之仿真 MFC类层次结构 Frame 1范例程序 MFC程序的初始化过程 Frame 2范例程序 RTTI(执行期类型识别) 类别型录网与CRuntimeClass DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏 Frame 3范例程序 IsKindOf(类型识别) Frame 4范例程序 Dynamic Creation(动态生成) DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE宏 Frame 6范例程序 Persistence(永久保存)机制 Serialize(数据读写) DECLARE_SERIAL/IMPLEMENT_SERIAL宏 没有范例程序 Message Mapping(消息映射) Frame 7范例程序 Command Routing(命令传递) Frame 8范例程序 本章回顾 第二篇 欲善工事先利其器 第4章 Visual C++集成开发环境 安装与组成 四个重要的工具 内务府总管:Visual C++集成开发环境 关于project 关于工具设定 Source Browser Online Help 调试工具 VC++调试器 Exception Handling 程序代码产生器:AppWizard 东圈西点完成MFC程序骨干 威力强大的资源编辑器 Icon编辑器 Cursor编辑器 Bitmap编辑器 工具栏(Toolbar)编辑器 VERSIONINFO资源编辑器 字符串表格(Accelerator)编辑器 菜单(Menu)编辑器 加速键(Accelerator)编辑器 对话框(Dialog)编辑器 Console程序的项目管理 第三篇 浅出MFC程序设计 第5章 总观Application Framework 什么是Application Framework? 侯捷怎么说 我怎么说 别人怎么说 为什么使用Application Framework Microsoft Foundation Classes(MFC) 白头宫女话天宝:Visual C++与MFC 纵览MFC General Purpose classes CObject 数据处理类(collection classes) 杂项类 异常处理类(exception handling classes) Windows API classes Application framework classes High level Abstractions Afx全局函数 MFC宏(macros) MFC数据类型(data types) 第6章 MFC程序的生死因果 不二法门:熟记MFC类的层次结构 需要什么函数库? 需要什么头文件? 简化的MFC程序结构——以Hello MFC为例 Hello程序程序代码 MFC程序的来龙去脉(causal relations) 我只借用两个类:CWinApp和CFrameWnd CWinApp——取代WinMain的地位 CFrameWnd——取代WndProc的地位 引爆器——Application object 隐晦不明的WinMain AfxWinInit——AFX内部初始化操作 CWinApp::InitApplication CMyWinApp::InitInstance CFrameWnd::Create产生主窗口(并先注册窗口类) 奇怪的窗口类名称Afx:b:14ae:6:3e8f 窗口显示与更新 CWinApp::Run——程序生命的活水源头 把消息与处理函数连接在一起:Message Map机制 来龙去脉总整理 Callback函数 空闲时间(idle time)的处理:OnIdle Dialog与Control 通用对话框(Common Dialogs) 本章回顾 第7章 简单而完整:MFC骨干程序 不二法门:熟记MFC类层次结构 MFC程序的UI新风貌 Document/View支撑你的应用程序 利用Visual C++工具完成Scribble step0 骨干程序使用哪些MFC类? Document Template的意义 Scribble的Document/View设计 主窗口的诞生 工具栏和状态栏的诞生(Toolbar&Status bar) 鼠标拖放(Drag and Drop) 消息映射(Message Map) 标准菜单File/Edit/View/Window/Help 对话框 改用CEditView 第四篇 深入MFC程序设计 第8章 Document-View深入探讨 为什么需要Document-View(形而上) Document View Document Frame(View Frame) Document Template CDocTemplate管理CDocument/CView/CFrameWnd Scribble Step1的Document——数据结构设计 MFC Collection Classes的选用 CScribbleDoc的修改 文件:一连串的线条 线条与坐标点 Scribble Step 1的View:数据重绘与编辑 CScribbleView的修改 View的重绘操作:GetDocument和OnDraw ClassWizard的辅佐 WizardBar的辅佐 Serialize:对象的档案读写 Serialization以外的档案读写操作 台面上的Serialize操作 台面下的Serialize写档奥秘 台面下的Serialize读档奥秘 DYNAMIC/DYNCREATE/SERIAL三宏 Serializable的必要条件 CObject类 IsKindOf IsSerializable CObject::Serialize CArchive类 operator《和operator》 效率考虑 自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大的网 DECLARE_MESSAGE_MAP宏 消息映射网的形成:BEGIN…/ON…/END…宏 米诺托斯(Minotauros)与西修斯(Theseus) 二万五千里长征——消息的传递 直线上溯(一般Windows消息) 拐弯上溯(WM_COMMAND命令消息) 罗塞达碑石:AfxSig_xx的奥秘 Scribble Step2:UI对象的变化 改变菜单 改变工具栏 利用ClassWizard连接命令项识别码与命令处理函数 维护UI对象状态(UPDATE_COMMAND_UI) 本章回顾 第10章 MFC与对话盒 对话框编辑器 利用ClassWizard连接对话框与其专用类 对话框的消息处理函数 对话框数据交换与校验(DDX&DDV) 如何唤起对话框 本章回顾 第11章 View功能的加强与重绘效率的提高 同时修改多个Views:UpdateAllViews和OnUpdate 在View中定义一个hint 把hint传给OnUpdate 利用hint增加重绘效率 可卷动的窗口:CScrollView 大窗口中的小窗口:Splitter 切分窗口的功能 切分窗口的程序概念 切分窗口的实现 本章回顾 第12章 打印与预览 概述 打印操作的后台原理 MFC默认的打印机制 Scribble打印机制的增强 打印机的页和文件的页 配置GDI绘图工具 尺寸与方向:关于映射方式(坐标系统) 分页 页眉与页脚 动态计算页码 打印预览(Print Preview) 本章回顾 第13章 多重文件与多重显示 MDI和SDI 多重显示(Multiple Views) 窗口的动态切分 窗口的静态切分 CreateStatic和CreateView 窗口的静态三叉切分 Graph范例程序 静态切分窗口之观念整理 同源子窗口 CMDIFrameWnd::OnWindowNew Text范例程序 非标准做法的缺点 多重文件 新的Cocument类 新的Document Template 新的UI系统 新文件的档案读写操作 第14章 MFC多线程程序设计 从操作系统层面看线程 三个观念:模块、行程和线程 线程优先级(Priority) 线程调度(Scheduling) Thread Context 从程序设计层面看线程 Worker Threads和UI Threads 错误观念 正确态度 MFC多线程程序设计 探索CWinThread 产生一个Worker Thread 产生一个UI Thread 线程的结束 线程与同步控制 MFC多线程程序例程 第15章 定制一个AppWizard 到底Wizard是什么? Custom AppWizard的基本操作 剖析AppWizard Components Dialog Templates和Dialog classes Macros Directives 动手修改Top Studio AppWizard 利用资源编辑器修改IDD_CUSTOM1对话框画面 利用ClassWizard修改IDD_CUSTOM1对话框的对应类CCustomlDlg 改写OnDismiss虚拟函数,在其中定义macros 修改text template Top Studio AppWizard执行结果 更多的信息 第16章 站上众人的肩膀——使用Components&activeX Controls 什么是Component Gallery 使用Components Splash screen system Info for About Dlg Tip of the Day Components实际运用:ComTest程序 修改ComTest程序内容 使用ActiveX Controls ActiveX Control基础观念:Properties、Methods、Events ActiveX Controls的五大使用步骤 使用ActiveX Control:OcxTest程序 第五篇 附录 附录A 无责任书评:从摇篮到坟墓Windows的完全学习 无责任书评:MFC四大天王 附录B Scribble Step 5完整原始码 附录C Visual C++5.0MFC范例程序一览 附录D 以MFC重建DBWIN

2008-11-21

在 C/C++ 中调用 Java

从 C/C++ 中调用 Java 代码,有一下几个步骤: 1.创建 JVM。调用 JNI_CreateJavaVM()。 2.寻找要调用的类。调用 FindClass()。 3.找到要调用的方法。调用 GetStaticMethodID()/GetMethodID()。 4.运行方法。调用 CallStaticMethod()/CallMethod()。 5.退出 JVM。调用 DestroyJavaVM()。 .............

2008-10-08

SQL_C_API.pdf

C环境开发SQL的API函数. PDF 版本

2007-10-23

shell基础十二篇.pdf

介绍linux shell的基础<br>适合初学者

2007-10-23

空空如也

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

TA关注的人

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