- 博客(39)
- 收藏
- 关注
原创 使用Openssl EVP函数计算Hash值
OpenSSL EVP函数库提供了一组用于加密操作高层接口,其中也包含了计算消息摘要Hash值得函数。OpenSSL提供了MD2, MD4, MD5, sha1, sha256, sha512等多种Hash算法。
2021-08-15 20:19:07 957
原创 从汇编解释volatile关键字的意义
很多编程语言有个volatile关键字,通常用在多线程访问或者原子操作。本文从汇编代码角度对volatile的意义进行解释,并说明其应用场景。
2021-07-27 19:19:41 224
原创 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 345
原创 计算机语言学习基本框架
计算机语言学习基本框架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 1133
原创 Android创建项目
-- 列举当前安装的sdk版本 $ android list targets -- 创建android应用项目 $ android create project --target --name --path / --activity --package 目标sdk版本
2013-12-10 01:05:26 829
原创 Linux socket连接句柄进程间传送示例代码
准备做一个网络侦听进程和数据处理进程分离的模块,侦听进程和数据处理进程一对多关系,希望侦听进程在收到连接后,把socket句柄传送给空闲的数据处理进程。对于进程间文件描述符传送,先做了如下的示例程序。 #include #include #include #include #include #include #include #include #include #incl
2013-03-26 01:00:32 3977
原创 VIM 基本命令参考
VIM 基本指令启动和退出$ vi filename 打开文件$ vi +n filename 打开文件,光标置于第n行首ZZ 退出vi并保存:q! 退出但不保存:wq 保存退出CTRL-g 查看当前文件和行信息光标控制:gg,G
2012-10-16 19:41:17 927
原创 Emacs 基本命令整理
C表示Ctrl键,M表示Alt键光标控制: C-v 向前翻页; M-v 向后翻页, PageUp C-l 光标所在行置中 C-p 光
2012-10-15 01:21:19 1050
原创 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 5752
原创 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 12489
原创 使用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 9438
原创 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 1735
原创 socket中的select函数使用
socket select()函数用于定时检查以创建的socket句柄的状态,以确定设定的socket句柄当前是否可写或有数据可读。select函数提供了一种方法,使得程序在操作socket时(如recv操作),无需因阻塞而等待直至超时。特别是在一个线程中操作多个socket时,对多个socket逐一操作直至超时将浪费大量时间。select机制则是同时对多个socket句柄进行
2012-07-07 17:14:40 9828 1
原创 C++实现的线性代数矩阵计算
/** * 线性代数矩阵计算 * 实现功能:行列向量获取,子矩阵获取,转置矩阵获取, * 行列式计算,转置伴随矩阵获取,逆矩阵计算 * * Copyright 2011 Shi Y.M. All Rights Reserved */#ifndef MATI
2011-07-19 23:08:44 3282
原创 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 1697
翻译 在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 9338 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 4306 2
原创 ORACLE 10g RELEASE 2 RAC FOR AIX5L 安装笔记
一、数据库系统规划目标本手册目标是在建立一个由两台服务器组成的ORACLE 10G RAC。服务器采用IBM AIX系统,两台服务器共享一个磁盘阵列。在本文档中,对系统基本参数和规划目标作如下假设。1、服务器名称及其实际网络地址服务器名称指服务器内部的识别名称,该名称可由hostname命令得到。集群系统中的每台服务器至少需要2个网络接口,其中一个是用于集群服务器间内
2007-12-28 09:52:00 5061
原创 iHistorian OPC Collector - 测点的添加过程分析
iHistorian OPC Collector - 测点的添加过程分析iHistorian OPC Collector服务启动后,分别连接到预先设定的OPC服务程序已经iH服务器。如果这是我们第一次运行这个接口,首先这个接口会把自己的名称添加到iH服务器的接口列表中,然后我们就需要向iH服务器中添加一些需要的测点。iH有一点很不错,可以使用服务器管理工具,通过服务器来查询接口中所支持的测点。
2007-07-21 04:11:00 2335
原创 iHistorian OPC Collector的安装、配置和运行
iHistorian OPC Collector的安装、配置和运行相对于OPC本身的复杂性,iH的OPC采集接口的安装还算是简单的,按照安装程序的向导一步一步执行就是。只是在安装OPC接口前,接口机上必须已经安装了OPC服务程序,然后在OPC接口安装向导中选择对应的OPC服务程序,安装程序会对指定的OPC服务程序进行单独的配置,包括配置文件以及在系统服务里为选定的OPC服务程序添加对应的接口服
2007-07-20 00:00:00 3747
原创 Windows平台的线程——创建和退出
Windows平台的线程 ---- 线程的创建和退出创建线程的Win32API函数是CreateThread和CreateRemoteThread。前者创建的线程运行于当前的进程空间,而后者用于创建运行于其他进程空间中的线程。线程创建后都回返回一个线程句柄,同时也可以在输出参数钟返回一个线程的编号。通过线程句柄,我们可以对先做进行暂停、恢复等操作。和其他系统句柄一样,线程句柄也可以被
2007-07-19 14:12:00 3487
原创 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 5562 5
原创 C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装
C++中enum枚举类型成员重名问题的解决方法 - Enum枚举类型的类封装C++语言中,对于一个枚举类型(enum),其成员值在所属枚举类型的声明作用域内是不可重复的。这个继承自C语言的特性,使我在写程序时碰到有相同名称的枚举成员时,苦于寻找且方便易读的替代枚举名称。这在C++程序开发方面带来了许多的不方便,在涉及枚举类型时必须时刻关注与现有的枚举变量是否有重名,在一定程度上限制了命名的
2007-06-25 19:57:00 18187 4
原创 Linux命令笔记
(arch) 显示硬件系统结构如i386(awk, gawk) 模式扫描和处理语言(basename)仅显示文件全路径中的文件名(chgrp)修改文件所属用户组(chmod)修改文件访问权限(chown)修改文件所属用户和组(df)显示文件系统信息(ls)显示文件列表命令
2007-02-12 01:12:00 1038
原创 进程间通信实现子进程标准输出转移
Visual Studio之类的IDE,在编译的时候调用cl等编译链接工具,而编译器是命令行程序,visual studio能把编译器的标准输出显示到窗口文本框中。一直困惑于它的实现方式。今天,终于在数小时的花费后,掌握了解决之道,关键在于创建匿名管道,并将子进程标准输出指向管道写端,另外一头就能慢慢读了。下面这个例子就是将"ping 127.0.0.1"原本在命令行窗口输出的内容,显示到窗口
2006-11-18 18:05:00 1221
原创 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 6205
原创 Oracle备份与恢复基本概念简述
物理备份(physical backups):复制数据库文件并保存到其他地方,数据库文件包括数据文件、已存档的重做日志或者控制文件。可以使用Recovery Manager(RMAN)或操作系统命令如(windows下的copy或UNIX下的cp)。逻辑备份(logical backups):使用Oracle Export(exp)工具将数据库内容读出,并存放到一个二进制文件中。该二进制文件可
2006-10-10 17:50:00 1393
原创 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 7921
原创 ATL学习笔记(3): QueryInterface功能的实现
在CComObjectRootEx类中,实现了线程安全的引用计数管理。而在CComObjectRootEx的父类CComObjectRootBase中,存在对QueryInterface的一个内部实现——InternalQueryface()。1. CComObjectRootBase类class CComObjectRootBase{public: ...... static
2006-03-14 01:22:00 3808
原创 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 4291
原创 ATL学习笔记(1):ATL单线程与多线程套间对象引用计数的基础实现
COM对象必须在套间中运行。套间分为单线程套间和多线程套间。在单线程套间中,套间保证COM对象实例仅有一个线程可以访问,而在多线程套间中,COM对象实例可同时被多个线程访问。因此,在多线程套间中执行的COM对象必须解决多线程访问的同步和冲突等线程安全相关问题。引用计数器管理的实现——CComObjectRootExATL使用CComObjectRootEx类来实现对COM对象计数器的管理,
2006-03-12 21:23:00 3580
原创 Windows GDI学习笔记(二)——窗口的绘制
Windows统一控制屏幕输出Windows作为一个多任务操作系统,在同一个界面上会存在多个任务窗口。因此为保证各个任务窗口能够正常工作,Windows系统负责管理所有的屏幕输出,保证图形内容能够显示在各自的窗口中而不相互干扰。所有应用程序都必须通过Windows系统才能将内容显示在屏幕上。何时绘制窗口窗口在很多时候能被绘制或重新绘制,如在窗口创建、大小变更、从其他窗口后面移出窗口、最大或最小化
2005-03-30 23:31:00 2533 1
原创 Windows GDI学习笔记(1)——基本概念
GDIWindows环境下的图形组件,介于应用程序与绘图设备驱动之间,为应用程序提供了一套与具体设备无关的绘图程序接口。Device Context是对具体绘图设备的一个抽象,用以加载特定的绘图设备驱动程序,并根据应用程序的指令调用具体的绘图设备实现所需的绘图操作。应用程序在绘图前创建并维护一个Device Context,并调用创建的Device Context进行绘图操作。Pen虚拟的线条绘图
2005-03-30 00:43:00 1787
转载 UNICODE编码说明(ZT)
1. 问题的起源每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII码, 中国的 GB2312-80,日本的 JIS 等,作为该国家/区域内信息处理的基础,有着统一编码的重要作用。字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,
2004-11-21 14:30:00 1500
原创 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 1058
原创 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 1251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人