socrates
码龄17年
关注
提问 私信
  • 博客:1,746,605
    社区:4,675
    1,751,280
    总访问量
  • 204
    原创
  • 2,192,882
    排名
  • 723
    粉丝
  • 0
    铁粉

个人简介:C/C程序员PythonPostgreSQL爱好者

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2007-07-28
博客简介:

Socrates的专栏

博客描述:
——不积跬步,无以至千里;不积小流,无以成江海
查看详细资料
个人成就
  • 获得229次点赞
  • 内容获得372次评论
  • 获得473次收藏
  • 代码片获得333次分享
创作历程
  • 3篇
    2014年
  • 37篇
    2013年
  • 144篇
    2012年
  • 132篇
    2011年
  • 52篇
    2010年
  • 3篇
    2009年
  • 71篇
    2008年
  • 92篇
    2007年
成就勋章
TA的专栏
  • Python学习笔记
    69篇
  • AMPS源码解读
    23篇
  • C学习笔记
    51篇
  • PostgreSQL系列
    16篇
  • C/C++
    101篇
  • Linux
    20篇
  • MFC
    4篇
  • ORACLE
    3篇
  • PostgreSQL
    17篇
  • 数据库
    18篇
  • 系统配置
    5篇
  • 脚本语言
    43篇
  • 通信知识
    10篇
  • SQLite
    2篇
  • Python
    66篇
  • 七号信令
    3篇
  • 游戏编程
    9篇
  • Android
    3篇
  • 消息中间件
    23篇
兴趣领域 设置
  • Python
    python
  • 编程语言
    c++
  • 开发工具
    pycharmdockervscodeideaintellij idea
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

179人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 关注/订阅/互动
搜TA的内容
搜索 取消

pclint(VC6.0和SourceInsight下的配置文件)

发布资源 2014.08.25 ·
rar

Tools:VC6.0和SourceInsight下的pclint配置

一、lint简介 lint是最著名的C语言工具之一,是由贝尔实验室SteveJohnson于1979在PCC(PortableC Compiler)基础上开发的静态代码分析,一般由UNIX系统提供。与大多数C语言编译器相比,lint可以对程序进行更加广泛的错误分析,是一种更加严密的编译工具。最初,lint这个工具用来扫描C源文件并对源程序中不可移植的代码提出警告。但是现在大多数lint实用程序
原创
发布博客 2014.08.25 ·
5997 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

C:二维数组常用操作

/*说明:程序实现二维数组中插入列、插入行、交换两个指定位置的元素,并输出指定位置元素的变化轨迹*/#include "stdafx.h"#include #include /*二维数组最大行数和列数*/#define MAX_ROW_NUM (9)#define MAX_COL_NUM (9)/*二维数组中各元素位置信息*/typedef struct _PathN
原创
发布博客 2014.08.17 ·
6175 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

C:TLV消息编码及常用操作

/*1、TLV简介:在通信系统中,两个设备之前必然存在消息交互,消息的格式也存在各种编码类型,本文仅描述TLV编码的消息格式。Type-length-value(TLV)格式中T、L的长度固定,通常为1-8个4个字节,V的长度不固定,由L的值表示,V的内容也可以嵌套子TLV格式。举例:假设消息按大端模式存放,T占4个字节,L占2个字节,下面的消息: unsigned char pMsg
原创
发布博客 2014.08.17 ·
10877 阅读 ·
2 点赞 ·
0 评论 ·
14 收藏

笔记:Vmware安装提示The MSI failed

之前的ubuntu由于直接关机导致文件损坏,将虚拟机卸载重装安装,报The MSI failed,安装失败,通过命令行方式安装成功,记录之。  方法如下:  1、cmd命令进行安装文件所在目录;  2、执行VMware-workstation-full-9.0.1-894247.exe /z "action"="install"  3、按提示点Next即可。
原创
发布博客 2013.06.17 ·
3793 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

AMPS:定时器模块源码解读

Timer模块的实现比较复杂,需要结合前面的文章《AMPS:定时器管理》才能有所理解,下面看看AMPS中的定时器实现,有些细节方面我也没有想清楚。 AMPS_Timer.h#ifndef __HEADER_AMPS_TIMER_H__#define __HEADER_AMPS_TIMER_H__#ifdef __cplusplus extern "C" {#endif#
原创
发布博客 2013.01.27 ·
3146 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:Cache模块源码解读

这里讲的Cache并不是通常说的计算机存储系统中的高速缓存,而是软件层面的缓存,它的做用主要是为了提高数据处理的效率。在AMPS中,Cache的结构如下:/*Cache结构*/struct _AMPSCache{ void* pvHASHTable; /*Hash表,用于查找*/ void* pvHeap; /*堆,用于增删改*/ int nCacheSize;
原创
发布博客 2013.01.27 ·
2783 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:内存管理模块源码解读(二)

上节看了AMPS中通过数组+单链表实现的内存池,本节看看另一个实现方式。此方法思路如下:其内存池结构为一个存放已分配内存信息的双链表,一个表示内存池大小的变量,一个指向当前内存链表结点的指针链表,如下:/*内存池结构*/struct _newMMContext{ t_AMPSDList* memBuffList; /*结点链表*/ int nSizeOfBuff;
原创
发布博客 2013.01.27 ·
3096 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:内存管理模块源码解读(一)

在AMPS中,使用内存池来管理内存,具体机制见之前的文章《AMPS:内存管理(二)》,在代码中,使用了两种实现方式,第一种是数组+单链表。今天先看看这个方式下的内存池实现。AMPS_MemoryMgt.h#ifndef __HEADER_AMPS_MEMORY_MGMT_H__#define __HEADER_AMPS_MEMORY_MGMT_H__#include "AMPS_
原创
发布博客 2013.01.27 ·
3257 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

AMPS:Oracle数据库操作模块源码解读

本节看看AMPS中对Oracle数据库进行操作的方法,使用的是Oracle的C访问接口OCI,关于OCI各函数的中文说明可参考这篇文章http://www.cnblogs.com/joeblackzqq/archive/2011/04/24/2026461.html 下面看看AMPS中Oracle操作各函数实现: AMPS_Oracle.h#ifndef __HEADER_AMPS_D
原创
发布博客 2013.01.25 ·
3331 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

AMPS:MySQL数据库操作模块源码解读

本节看看在AMPS中对MySQL数据库的访问操作,它使用MySQL提供的C API接口进行访问,具体各API的使用可参考http://dev.mysql.com/doc/refman/5.6/en/c-api-function-overview.html。 下面看看AMPS中的实现:  AMPS_MySQL.h#ifndef __HEADER_AMPS_MYSQL_ENGINE_H#
原创
发布博客 2013.01.25 ·
3358 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

AMPS:数据库访问模块源码解读

AMPS做为一个中间件,也提供了访问数据库的接口,目前支持MySQL和Oracle(对我所喜爱PostgreSQL却默认不支持,看来我的爱好属于非主流哈~),下面要看的是DBEngine库,它只做一件事情,就是封装了不同数据库操作的差异,提供一个数据库统一访问接口。下节再看针对不同数据库的具体操作。AMPS_DBEngine.h#ifndef __HEADER_AMPS_DB_ENGI
原创
发布博客 2013.01.25 ·
3134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:日志模块源码解读

看看AMPS中的日志模块,有两种写日志的方法,一是直接使用封装好的API函数写,另一种是通过应用层注册的日志回调函数,利用事件管理机制来写。  AMPS_Log.h#ifndef __HEADER_AMPS_LOG_H__#define __HEADER_AMPS_LOG_H__#include #include "AMPS_SystemAPI.h"#include "AMP
原创
发布博客 2013.01.24 ·
2953 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:AES模块源码解读

AES(Advanced Encryption Standard,高级加密标准)是一个对称密钥加密算法,密钥长度则可以是128,192或256比特。 算法思路(详细信息请见维基百科):  AES加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个Byte)。(Rijndael加密法因支持更大的区块
原创
发布博客 2013.01.23 ·
5714 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

AMPS:MD5模块源码解读

MD5是用于确保信息传输完整一致性的一个哈希算法。 其算法思想如下(摘自维基百科):    MD5是输入不定长度信息,输出固定长度128-bits的算法。经过程序流程,生成四个32位数据,最后联合起来成为一个128-bits散列。基本方式为,求余、取余、调整长度、与链接变量进行循环运算。得出结果。 是 XOR, AND, OR , NOT 的符号。
原创
发布博客 2013.01.23 ·
3110 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:字符串操作源码解读

字符串处理在软件中非常普遍,AMPS使用C语言编写,所有没有像 标准C++提供的string一样的类型,所以对字符串的处理就是对char *这样的指针处理,为了处理方便,AMPS定义了自己的String类型,如下:typedef struct _AMPSString t_AMPSString;struct _AMPSString{ unsigned char* puchData;
原创
发布博客 2013.01.21 ·
3182 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

AMPS:哈希表源码解读

Hash表也是一种常用的数据结构,AMPS中的Hash表并不是给使用者提供一个散列函数,而是仅提供一个创建和维护Hash表这样一个结构的一组函数,针对不同的应用或者数据,由用户自己定义其要使用的散列函数,AMPS中,Hash表组成结构是如下的拉链式结构。下面看看AMPS中对Hash操作的代码:AMPS_Hash.h#ifndef __HEADER_AMPS_HASH_H#
原创
发布博客 2013.01.21 ·
3502 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:堆源码解读

堆是一种比较复杂的数据结构,也就是通常所说的完全二叉树,分为最大堆和最小堆,定义如下:最大堆:根结点的键值是所有堆结点键值中最大者的堆。                 最小堆:根结点的键值是所有堆结点键值中最小者的堆。                 而最大-最小堆集结了最大堆和最小堆的优点,这也是其名字的由来。 最大-最小堆是最大层和最小层交替出现的二叉
原创
发布博客 2013.01.20 ·
2855 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

AMPS:队列源码解读

队列概念很简单,就是排队,先进先出,通常有链表形式和数组形式(即链接类型和顺序类型),它也是软件构建的一个基本数据结构,看看AMPS中的队列实现。 AMPS_Queue.h#ifndef __HEADER_AMPS_QUEUE_H#define __HEADER_AMPS_QUEUE_H#ifdef __cplusplusextern "C" {#endif#includ
原创
发布博客 2013.01.19 ·
2788 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

AMPS:双向链表源码解读

本节在上节单向链表的基础上看看AMPS中对双向链表的实现,与单向链表相同,双向链表在软件中的使用也相对比较广泛,在后面要讲到的Hash表、定时器、内存管理等模块中都会见到以双向链表作为基本数据结构。其实,双向链表在实现上使用了很多单向链表的操作,仅在插入、删除结点时需要多操作几步,所以理解了单向链表,这块就比较好理解了。  同样,AMPS提供了以下API对双向链表进行操作:  AMPS
原创
发布博客 2013.01.19 ·
2892 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏
加载更多