自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 使用Openssl EVP函数计算Hash值

OpenSSL EVP函数库提供了一组用于加密操作高层接口,其中也包含了计算消息摘要Hash值得函数。OpenSSL提供了MD2, MD4, MD5, sha1, sha256, sha512等多种Hash算法。

2021-08-15 20:19:07 864

原创 从汇编解释volatile关键字的意义

很多编程语言有个volatile关键字,通常用在多线程访问或者原子操作。本文从汇编代码角度对volatile的意义进行解释,并说明其应用场景。

2021-07-27 19:19:41 164

原创 C++对象内存结构模型 - 单一对象内存结构

1 单一对象内存结构1.1 普通C++对象内存结构class CObject{private: int mv1; long long mv2; char mv3;public: int GetValue1() const; void SetValue1(int val);};普通C++对象与C中的...

2019-08-14 01:50:36 302

原创 计算机语言学习基本框架

计算机语言学习基本框架1. Hello, World!简单程序示例及运行。1. 变量2.1 变量基本数据类型2.2 变量声明与初始化2.3 变量类型转换 3. 运算符3.1 赋值运算符3.2 数学运算符加法,减法,乘法,除法,取模,幂 ...3.3 位运算符与,或,异或,取反,左移,右移。3.4 逻辑运算符逻辑与,逻辑或,逻...

2019-02-27 00:54:06 1082

原创 关于程序性能优化基础的一些个人总结

日常程序性能优化过程中的一些总结,记录于此以备忘

2014-07-31 00:11:49 2574

原创 Android创建项目

-- 列举当前安装的sdk版本    $ android list targets             -- 创建android应用项目    $ android create project --target --name         --path / --activity         --package               目标sdk版本

2013-12-10 01:05:26 801

原创 Linux socket连接句柄进程间传送示例代码

准备做一个网络侦听进程和数据处理进程分离的模块,侦听进程和数据处理进程一对多关系,希望侦听进程在收到连接后,把socket句柄传送给空闲的数据处理进程。对于进程间文件描述符传送,先做了如下的示例程序。 #include #include #include #include #include #include #include #include #include #incl

2013-03-26 01:00:32 3940

原创 VIM 基本命令参考

VIM 基本指令启动和退出$ vi filename    打开文件$ vi +n filename 打开文件,光标置于第n行首ZZ               退出vi并保存:q!              退出但不保存:wq              保存退出CTRL-g           查看当前文件和行信息光标控制:gg,G

2012-10-16 19:41:17 896

原创 Emacs 基本命令整理

C表示Ctrl键,M表示Alt键光标控制:                                  C-v    向前翻页;                   M-v    向后翻页, PageUp                 C-l    光标所在行置中                                        C-p    光

2012-10-15 01:21:19 1030

原创 CentOS 6.3 安装 Oracle 11gR2 依赖库检查失败处理

CentOS 6.3 64位 安装 Oracle 11gR2 64位在依赖库检查时,多个依赖库检查失败,提示未安装,如libaio,unixODBC等。经检查确认这些库都以安装,版本高于或等于所需版本。翻阅Oracle 文档,对于64位Oracle 11.2.0.2之间的版本,部分依赖库需要同时安装32位版和64位版。而报依赖性错误的库就是这些库的32位版。那么可以确定是o

2012-10-11 02:05:26 5708

原创 ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN

ORACLE优化之执行规划(1) - TABLE FULL SCAN/INDEX FULL SCAN TABLE FULL SCAN 全表扫描,表示表中所有记录都被访问到。如果表很大, 该操作对查询性能的影响会很大,此时,建议使用索引 或去掉查询中的LIKE操作。  EXPLAIN PLAN   SET statement_id = 'ex_plan1' FOR

2012-09-12 13:39:17 12368

原创 使用SQL*Loader将CSV文件数据导入ORACLE数据表

使用SQL*Loader将CSV文件数据导入ORACLE数据表LuckySYM1. 环境条件与操作目标(1) Oracle中存在一个Employee表,表中包含4个字段:emp_id   numberemp_name varchar2emp_date datedpt_id   number(2) 一个CSV文件emp.csv, 包含了上述表中的相

2012-09-11 23:20:20 9358

原创 Linux新增磁盘与LVM逻辑卷操作

Linux新增磁盘与LVM逻辑卷操作1. 环境虚拟机环境:Oracle VisualBox 4.1操作系统 Oracle Enterprise Linux 5.5磁盘及文件系统环境:2个16G - sda和sdb, sda中有2个物理分区,sdb有1个物理分区sda1: 100M 挂载/boot, sda2+sdb1组成一个卷组VolGroup00, V

2012-09-06 13:57:29 1713

原创 socket中的select函数使用

socket select()函数用于定时检查以创建的socket句柄的状态,以确定设定的socket句柄当前是否可写或有数据可读。select函数提供了一种方法,使得程序在操作socket时(如recv操作),无需因阻塞而等待直至超时。特别是在一个线程中操作多个socket时,对多个socket逐一操作直至超时将浪费大量时间。select机制则是同时对多个socket句柄进行

2012-07-07 17:14:40 9710 1

原创 C++实现的线性代数矩阵计算

/** * 线性代数矩阵计算 * 实现功能:行列向量获取,子矩阵获取,转置矩阵获取, * 行列式计算,转置伴随矩阵获取,逆矩阵计算 * * Copyright 2011 Shi Y.M. All Rights Reserved */#ifndef MATI

2011-07-19 23:08:44 3248

原创 Windows异步I/O读文件的缓存限制?

<br />本文仅对系统的极端情况进行测试和描述,不考虑一般的替代方案。<br /> <br />在Windows下,使用OVERLAPPED方式,读取一个大文件(TEST.DAT, 200MB),示例代码如下(缩减):<br /> <br />HANDLE     file_handle   = 0;<br />DWORD      numb_of_bytes = 0;<br />CHAR *     file_buffer   = new CHAR[1024 * 1024 * 128];<br />DW

2010-11-07 19:08:00 1659

原创 Oracle 10g 恢复操作概述

Oracle 10g 恢复 实例恢复 闪回表 闪回查询 REDO LOG LogMiner RMAN

2010-08-31 23:57:00 808

原创 oRACLE 10g 数据库备份摘要

Oracle 10g RMAN 归档日志 快速恢复区 等的设置概要

2010-08-29 01:45:00 851

翻译 在64位Windows上运行32位应用程序[iis]

<br />在64位Windows上运行32位应用程序<br />Win2003SP164位版的系统, 使用WOW64来运行32位的应用程序,包括IIS 6.0运行32位WEB应用程序。<br /> <br />在64位Windows上,32位的进程无法加载64位的DLL,同样64位的进程无法加载32位的DLL。<br />因此如果需要在64位系统上的IIS中运行32位的WEB应用,则必须对IIS进行配置,<br />使其创建32位的工作进程,以运行32位WEB应用。<br />只要IIS能创建32位工作进

2010-06-23 23:13:00 9265 1

原创 通过PI-OLEDB实现ORACLE对PI系统的异构连接

(本例用于连接PI ARCHIVE,其他PI表同理,具体参照PI-OLEDB文档,适用于ORACLE 9i/10g) 一、PI-OLEDB UDL链接文件创建与设置 1. 创建一个空文本文件,重命名为piarch.udl。 2. 右键点击piarch.udl,选择Properties。 3. 在Provider页,选择,PI OLEDB Provider。 4. 在Connection页

2008-06-24 23:58:00 4223 2

原创 ORACLE 10g RELEASE 2 RAC FOR AIX5L 安装笔记

 一、数据库系统规划目标本手册目标是在建立一个由两台服务器组成的ORACLE 10G RAC。服务器采用IBM AIX系统,两台服务器共享一个磁盘阵列。在本文档中,对系统基本参数和规划目标作如下假设。1、服务器名称及其实际网络地址服务器名称指服务器内部的识别名称,该名称可由hostname命令得到。集群系统中的每台服务器至少需要2个网络接口,其中一个是用于集群服务器间内

2007-12-28 09:52:00 5026

原创 iHistorian OPC Collector - 测点的添加过程分析

iHistorian OPC Collector - 测点的添加过程分析iHistorian OPC Collector服务启动后,分别连接到预先设定的OPC服务程序已经iH服务器。如果这是我们第一次运行这个接口,首先这个接口会把自己的名称添加到iH服务器的接口列表中,然后我们就需要向iH服务器中添加一些需要的测点。iH有一点很不错,可以使用服务器管理工具,通过服务器来查询接口中所支持的测点。

2007-07-21 04:11:00 2262

原创 iHistorian OPC Collector的安装、配置和运行

iHistorian OPC Collector的安装、配置和运行相对于OPC本身的复杂性,iH的OPC采集接口的安装还算是简单的,按照安装程序的向导一步一步执行就是。只是在安装OPC接口前,接口机上必须已经安装了OPC服务程序,然后在OPC接口安装向导中选择对应的OPC服务程序,安装程序会对指定的OPC服务程序进行单独的配置,包括配置文件以及在系统服务里为选定的OPC服务程序添加对应的接口服

2007-07-20 00:00:00 3649

原创 Windows平台的线程——创建和退出

Windows平台的线程  ---- 线程的创建和退出创建线程的Win32API函数是CreateThread和CreateRemoteThread。前者创建的线程运行于当前的进程空间,而后者用于创建运行于其他进程空间中的线程。线程创建后都回返回一个线程句柄,同时也可以在输出参数钟返回一个线程的编号。通过线程句柄,我们可以对先做进行暂停、恢复等操作。和其他系统句柄一样,线程句柄也可以被

2007-07-19 14:12:00 3437

原创 Windows下C++读写锁

// 一个Windows下C++读写锁的代码,实现共享读,独占写class ReadWriteLock{public:    int    m_currentLevel;    int    m_readCount;       HANDLE m_unlockEvent;     HANDLE m_accessMutex;    CRITICAL_SECTION m_csStateChan

2007-06-29 17:10:00 5528 5

原创 C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装

C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装C++语言中,对于一个枚举类型(enum),其成员值在所属枚举类型的声明作用域内是不可重复的。这个继承自C语言的特性,使我在写程序时碰到有相同名称的枚举成员时,苦于寻找且方便易读的替代枚举名称。这在C++程序开发方面带来了许多的不方便,在涉及枚举类型时必须时刻关注与现有的枚举变量是否有重名,在一定程度上限制了命名的

2007-06-25 19:57:00 17936 4

原创 Linux命令笔记

(arch) 显示硬件系统结构如i386(awk, gawk) 模式扫描和处理语言(basename)仅显示文件全路径中的文件名(chgrp)修改文件所属用户组(chmod)修改文件访问权限(chown)修改文件所属用户和组(df)显示文件系统信息(ls)显示文件列表命令

2007-02-12 01:12:00 1014

原创 进程间通信实现子进程标准输出转移

Visual Studio之类的IDE,在编译的时候调用cl等编译链接工具,而编译器是命令行程序,visual studio能把编译器的标准输出显示到窗口文本框中。一直困惑于它的实现方式。今天,终于在数小时的花费后,掌握了解决之道,关键在于创建匿名管道,并将子进程标准输出指向管道写端,另外一头就能慢慢读了。下面这个例子就是将"ping 127.0.0.1"原本在命令行窗口输出的内容,显示到窗口

2006-11-18 18:05:00 1202

原创 Windows Common Controls

Windows Common ControlsWin32 API中本身提供了Windows下许多常用的控件,称为Common Controls。 这些控件与Button、ComboBox等控件不同,不是在user32.dll中实现,而是在Comctrl32.dll中实现,相关的C++原型声明在commctrl.h中。所以,在使用Win32 API编写Windows窗口应用程序时,如果在界面

2006-10-19 15:35:00 5996

原创 Oracle备份与恢复基本概念简述

物理备份(physical backups):复制数据库文件并保存到其他地方,数据库文件包括数据文件、已存档的重做日志或者控制文件。可以使用Recovery Manager(RMAN)或操作系统命令如(windows下的copy或UNIX下的cp)。逻辑备份(logical backups):使用Oracle Export(exp)工具将数据库内容读出,并存放到一个二进制文件中。该二进制文件可

2006-10-10 17:50:00 1371

原创 ATL学习笔记(4): COM接口映射表

CComObjectRootObjectBase中以表驱动的方式对接口的查询作了一个内部的实现,即InternalQueryInterface()。所以在创建基于ATL的COM类时,需要创建一个包含所有实现接口的映射表。1. BEGIN_COM_MAP、END_COM_MAP、COM_INTERFACE_ENTRY与COM_INTERFACE_ENTRY2宏ATL提供了BEGIN_COM_

2006-03-16 00:35:00 7849

原创 ATL学习笔记(3): QueryInterface功能的实现

在CComObjectRootEx类中,实现了线程安全的引用计数管理。而在CComObjectRootEx的父类CComObjectRootBase中,存在对QueryInterface的一个内部实现——InternalQueryface()。1. CComObjectRootBase类class CComObjectRootBase{public:    ......    static

2006-03-14 01:22:00 3776

原创 ATL学习笔记(2): ATL对象多线程访问临界锁的实现

1. 几个临界区类ATL将Windows临界区封装了一下,即CComCriticalSection和CComAutoCriticalSection类。两者的实现如下(精简):class CComCriticalSection{public:    CComCriticalSection()    {  memset(&m_sec, 0, sizeof(CRITICAL_SECTION));  

2006-03-13 01:55:00 4261

原创 ATL学习笔记(1):ATL单线程与多线程套间对象引用计数的基础实现

COM对象必须在套间中运行。套间分为单线程套间和多线程套间。在单线程套间中,套间保证COM对象实例仅有一个线程可以访问,而在多线程套间中,COM对象实例可同时被多个线程访问。因此,在多线程套间中执行的COM对象必须解决多线程访问的同步和冲突等线程安全相关问题。引用计数器管理的实现——CComObjectRootExATL使用CComObjectRootEx类来实现对COM对象计数器的管理,

2006-03-12 21:23:00 3524

原创 Windows GDI学习笔记(二)——窗口的绘制

 Windows统一控制屏幕输出Windows作为一个多任务操作系统,在同一个界面上会存在多个任务窗口。因此为保证各个任务窗口能够正常工作,Windows系统负责管理所有的屏幕输出,保证图形内容能够显示在各自的窗口中而不相互干扰。所有应用程序都必须通过Windows系统才能将内容显示在屏幕上。何时绘制窗口窗口在很多时候能被绘制或重新绘制,如在窗口创建、大小变更、从其他窗口后面移出窗口、最大或最小化

2005-03-30 23:31:00 2499 1

原创 Windows GDI学习笔记(1)——基本概念

GDIWindows环境下的图形组件,介于应用程序与绘图设备驱动之间,为应用程序提供了一套与具体设备无关的绘图程序接口。Device Context是对具体绘图设备的一个抽象,用以加载特定的绘图设备驱动程序,并根据应用程序的指令调用具体的绘图设备实现所需的绘图操作。应用程序在绘图前创建并维护一个Device Context,并调用创建的Device Context进行绘图操作。Pen虚拟的线条绘图

2005-03-30 00:43:00 1754

转载 UNICODE编码说明(ZT)

1. 问题的起源每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII码, 中国的 GB2312-80,日本的 JIS 等,作为该国家/区域内信息处理的基础,有着统一编码的重要作用。字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,

2004-11-21 14:30:00 1444

原创 TAPI 3 - Call And Media Controls - 概述

TAPI 3 Call And Media Controls是一批COM对象接口,用于在两台或两台以上计算机间处理呼叫和通话。呼叫和通话不仅是公共电话网中的呼叫和通话,也包括IP网络的多媒体网络会议。TAPI 3 Call And Media Controls包含5个主要的COM对象::TAPI,Address,Terminal,Call,CallHub。

2004-10-18 22:45:00 1034

原创 TAPI 3 - 概述

基于COM,集合了传统技术和IP技术,包含从公共电话网的简单语音技术到含QOS的IP多媒体多播网络会议技术。4个组成部分:  > COM API -为开发这提供开发接口  > TAPI服务程序-对TAPI 2/3的Service Provider接口的抽象  > Telephony Service Providers (TSPs)-对通信协议的封装  > Media Stream Provider

2004-10-18 22:04:00 1218

空空如也

空空如也

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

TA关注的人

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