自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天的专栏

专注于Linux /Window平台C/C++游戏服务器后台程序开发

  • 博客(89)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux 飞秋 ---iptux

sudo apt-get install iptux .支持中文: tools/ preference/system  preference network coding :gb18030加入更多网段: tools/ preference/network然后在system->preferences->startup applications 增加iptux,指向

2013-10-31 17:12:25 2029

原创 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离

最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的子序列。代码如

2013-10-31 13:52:37 754

原创 最大子序列

最大子序列是要找出由数组成的一维数组中和最大的连续子序列。比如{5,-3,4,2}的最大子序列就是 {5,-3,4,2},它的和是8,达到最大;而 {5,-6,4,2}的最大子序列是{4,2},它的和是6。你已经看出来了,找最大子序列的方法很简单,只要前i项的和还没有小于0那么子序列就一直向后扩展,否则丢弃之前的子序列开始新的子序列,同时我们要记下各个子序列的和,最后找到和最大的子序列。#

2013-10-31 13:13:57 871

原创 linux下32位机与64位机基本数据类型长度对比

基本数据类型数据类型32位64位char11int44long48float44double88long double1216long long88可以指定int的长度:数据类型32位64位int32_t44int64_t88类似的,还有uint32_t和uint

2013-10-31 12:23:37 1285

原创 批量更改文件编码

一:问题的提出如何将一个目录下的编码为   GB18030  的 *.php  (所有php文件)  更改为 utf8格式。二:问题的解决  建立脚本   vi  f.sh#!/bin/bashfind ./ -type f -name "*.php"|while read line ;do   echo $line   iconv

2013-10-31 08:58:27 1032

原创 笔记3

左值:凡是产生引用的表达式,, 凡是间接操作对象,&,*指针也是 ,凡是有名字对象一定是左值;const int n=8; 是左值;即使作一个右赋值操作也是左值数组是左值,但地址是右值 语言内建的数组下标 [] 、去引用 * 、赋值 (=, +=, 等 ) 、前置 + + 、—操作符产生左值,    其它操作符产生右值 返回对象引用的函数产生左值,其它情况产生右值 左

2013-10-31 08:55:50 810

转载 位操作基础篇之位操作全面总结

itle:       位操作基础篇之位操作全面总结Author:     MoreWindowsE-mail:      morewindows@126.comKeyWord:   C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理

2013-10-30 19:48:25 699

原创 C++笔记2 数组和指针

using namspace std;  打开之后有冲突 和别的定义冲突,比如我们定义一个struct Cout类型 Cout cout   他就和std的命令空间中cout冲突,5 种存储类型自动类型autoregisterexternstaticmutableauto 在旧的类型C++98是 存储类别 是分布在栈区的自动对象在新的标准中C++11是自

2013-10-29 20:05:34 727

原创 c++ 笔记1 类型声明

exceptional C++ 不同的静态比动态高效模板元编程  tepleate meta-programmingKDE qtGNAME   wX widget eexexex智能指针内置类型   不需要我们自定义整形    boolchar  :signed char,unsigned char, wchar_t  char1

2013-10-29 20:04:28 919

原创 C++ new本质分析

new是分三步;第一步: 首先在堆中分配一块内存第二步: 调用构造函数来进行初始化第三步: 返回一个指向这块内存的指

2013-10-29 19:39:53 1242

原创 Linux C++ 程序内存布局

一般C语言的编译后执行语句都编译成机器代码,保存在.text段;已初始化的全局变量和局部静态变量都保存在. data段;未初始化的全局变量和局部静态变量一般放在一个叫.“bss”的段里heap是堆 是我们自己创建分配的stack是栈 是系统分配创建内存的

2013-10-29 19:31:57 1322

原创 C/C++中.bss段的解释

BSS(Block Started by Symbol)这个词最初是UA-SAP汇编器(United Aircraft Symbolic Assembly Program)中的一个伪指令,用于为符号预留一块内存空间。该汇编器由美国联合航空公司于20世纪50年代中期为IBM 704大型机所开发。后来BSS这个词被作为关键字引入到了IBM 709和7090/94机型上的标准汇编器FAP(Fortr

2013-10-29 19:27:58 3581

原创 linux中shell变量$#,$@,$0,$1,$2的含义解释

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出

2013-10-26 14:31:25 775

原创 六、统计用户登录的次数

主机 xuanyuan-soft.org.cn 对外为约 2500 名 Linux 爱好者无偿提供服务,现要求统计本月 1 日到当前日期内,所有登录过该主机的用户名和登录的次数,且按登录次数从大到小排列,输出结果类似如下格式:12 tiger11 zhangsan8 lisi...

2013-10-26 12:27:16 5532

原创 八、获取进程运行时间

现有一个正在运行中的服务进程,我们仅知道其侦听于 8868 TCP 端口,请找出该进程自启动到当前总共运行了多长时间,输出结果类似如下格式(x 天-x 小时:x 分钟:x 秒):3­12:27:51ps -p 进程ID -o pid,etime=ps -p 4260 -o pid,start_time,etime,comm

2013-10-26 12:04:21 1384

原创 七、查看进程某些情况

1. 查看某进程中开启并正在执行的线程个数及线程信息。2. 查看某进程打开的所有文件。3. 查看进程树(即查看其父进程、子进程等)。1. ps -efL | grep zmessenger | grep -v grep2, lsof -p 51043, pstree -p 4646

2013-10-26 12:00:57 745

原创 九、获取 cpu 个数和 cpu 核(core)数

获取您工作的计算机的 cpu 个数,以及 cpu 的核数(可执行两次命令来完成)。grep "processor" /proc/cpuinfo  | wc -l

2013-10-26 11:59:19 4929

原创 五、修改文件权限

如有目录 d1,其下有若干个子目录、d1 和子目录中有若干个文件,现要求将 d1 以及其内所有目录的权限改为 755,而所有文件的权限改为 644。find . -type d -exec chmod 755 {} \;  find . -type f -exec chmod 644 {} \;

2013-10-26 11:54:44 955

原创 二、代码行数统计

假设现有一个大型 C++项目 project_a,其下有多个模块,每个模块是一个子目录,每个模块下都有数目不等的 C++头文件(*.h)和 C++实现文件(*.cpp),请用适当的 Shell 命令来统计该项目所有源文件的总行数。#!/bin/bashfilesCount=0linesCount=0function funCount(){ for file in ` ls

2013-10-26 11:52:19 981

原创 四、文本查询

找出/usr/include/c++ 目录及其子目录下所有包含 “remove_if”的文件,输出文件名以及行号。解决方法grep -HnR "remove_if" /usr/include/c++­H :输出文件名 是输出行行首格式选项:­n :显示输出行在文件中的行号­R :递归读取目录和子目录下的文件  "remove_if"/usr/incl

2013-10-26 11:42:56 672

原创 三、批量更改文件后缀名

rename  fromtofile这个命令有三个参数,分别是 from : 修改什么名字, to:改成什么名字, file 需要修改的文件是哪些。rename log txt *.log把 以 log结尾的所有文件中的 log字符替换为 txt

2013-10-26 11:35:52 867

原创 一、代码清理

现有如下列形式的代码,请使用适当的命令或命令组合将其清理成合格的 C++代码段(注意:有重复行、以及行首都有数字):  1 enum Color { RED, GREEN, BLUE };   2 enum Color { RED, GREEN, BLUE };   3 void func(const Color& c) {   4 void func(const Color&

2013-10-26 11:33:34 981

原创 Linux Shell编程入门

从程序员的角度来看,Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用Shell脚本编程,完成更加复杂的操作。在LinuxGUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修功课之一。Linux的Shell种类

2013-10-26 10:20:47 649

原创 vim 横行和纵向分割

vim 横行和纵向分割横向分割vim -o name.c my.h my 先打开几个程序 然后:tab split a.c  gt从前向后切换  gT 从后向前切换//纵向分割窗口vim names.cpp   :vsplit main.c  纵向ctrl+w 按两下切换:only  保留当前窗口, 其他都去掉

2013-10-25 18:42:04 4304

原创 linux 编译段错误解决方法

段错误处理首先查看这个段错误产生文件是否开启 ,产生一个 core dumped  文件的状态, 当你开启 这个core文件是在你那个编译的可执行程序目录下ulimit -a 查看core file size是否为0,为0的话就开启输入命令 ulimit -c unlimited然后再编译文件产生段错误时,在那个应用程序目录下就会产生一个core文件,然后输入命令 gdb

2013-10-25 18:41:34 2739

原创 gdb常用法

gdb用法gdb miniftpdl shell_short.cpp:6,13 显示hchen/test> gdb tst  (gdb) l     (gdb)       (gdb) break 16    (gdb) break func  (gdb) info break  (gdb) r           Breakpoint 1, main

2013-10-25 18:39:57 823

原创 vim常用操作

vi file1 file2 ... 打开或新建多个文件vi ­r file 修复最近异常关闭的文件 filevi +n file 打开文件 file ,将光标定位到文件的第 n 行保存退出文件:w:w newfile 将文件另存为newfile:n 光标移到第 n 行G 光标移到文件末行[ctrl-G] 显示文件的总行数、当前行号、列号等信息/匹配

2013-10-25 18:37:20 962

原创 make makefile

makefileMake fileGNUmakefile  三种默认方法make  gmake编译 都可以编译上面 make 默认是找第一个目标make clean 找clean这个目标make -f mymk.mk make -f mymk.mk clean目标与依赖目标: 依赖    编译指令其中目标的名字是可以随便改的,下面的c

2013-10-25 13:42:38 762

原创 //共享库的运行期路径问题 就是你运行的时候不指定共享库的路径 也能运行

第一种:是是把共享库拷贝到/usr/lib 、 /usr/local/lib 目录下就可以第二种:LD_LIBRARY_PATH 指定的目录下,LD_LIBRARY_PATH环境变量,要保存到./bashrc文件中   别的系统要拷贝到./profile文件中第三种:使用 ldconfig 机制       在 /etc/ld.so.conf.d/ 下创建一个 .conf 文件,如 l

2013-10-25 09:49:21 1043

原创 gcc.g++ 编译调用共享库 静态库

生成共享库 要先生成目标文件 然后才能生成共享库第一步:g++ -c *.cpp -I ../inc -g -Wall  //编译生成目标文件.o -I是指定要包含的头文件 -g 在目标文件中包含debug信息 -wall 打开所有警告信息第二步:g++ -shared say_hello.o say_goodbay.o -o ../lib/libspeak.so //把say_hello

2013-10-24 18:48:02 1721

原创 OTL使用指南

OTL使用指南             广州从兴电子开发有限公司       文档修改历史日期版本作者修改内容评审号变更控制号发布日期2007-9-140.1佘彪

2013-10-15 14:10:33 13428

原创 C++07使用OTL操作MySQL数据库

一、编写代码注:以下代码来自OTL示例,略有改动文本查看复制代码打印关于1.            #include   2.            using namespace std;  3.              4.            #include   5.            #include   6.            #includ

2013-10-15 14:08:55 2218

翻译 C++06使用OTL操作Oracle数据库

一、编写代码 注:以下代码来自OTL示例 文本查看复制代码打印关于  # /*    #  *otl_test.cpp     # *     # */        #include     using namespace std;       #include        #define OTL_ORA10G_R2 // C

2013-10-15 14:07:50 1091

翻译 OTL翻译(12) -- OTL的迭代器

OTL stream read iterator这个类是一个像传统的JDBC中的getter()操作一样扩展了OTL流的模板类。它现在还不支持UNICODE字符集。它对otl_refcur_stream和otl_stream的使用基本相同(在ORACLE8版本里面)。模板的定义如下:template         typename OTLException#if !defin

2013-10-15 14:06:56 1127

翻译 OTL翻译(11) -- OTL的流缓冲池

OTL的流缓冲池一般来讲,流一般作为一个局部的变量被使用,当使用完毕后就立刻关闭,如果需要再次使用就需要再次的声明变量,如此循环。OTL流的缓冲池(内存池)是一个解决以往的流性能低下的一个机制。当流被关闭后,实际上流的相关变量被保存在一个流缓冲池里面,以便再利用。每一个流在解析SQL或与数据库层打交道的时候都存在着巨大的资源开销。OTL通过流缓冲池机制来解决这个不必要的开销以提高性能。

2013-10-15 14:06:20 1072

翻译 OTL翻译(10) --常量的SQL语句

常量的SQL语句一个没有绑定变量的SQL语句、SQL语句块或是存储过程就被称为常量的SQL语句。OTL通过一个静态的函数来执行这样的SQL语句。例如:// staticotl_cursor::direct_exec()   otl_cursor::direct_exec   (db, // connect object    "create table test_tab

2013-10-15 14:05:58 1048

翻译 OTL翻译(9) -- otl_long_stringotl_long_unicode_string类

otl_long_string/olt_long_unicode_string这两个类主要用来处理大对象数据。从OTL4.0版本开始,otl_long_string还可以处理任何类型的RAW/BIANRY类型。下面列出了常见数据库的一些大对象类型:·             Oracle 7: LONG, RAW, LONG RAW·             Oracle 8, 8i,

2013-10-15 14:05:22 1439

翻译 OTL翻译(8) -- otl_exception类

otl_exception这个类是OTL用来抛出异常的类。如果数据库API返回一个非0的错误值,则OTL会将会抛出一个otl_exception的异常。一个otl_exception异常有可能是一个数据库错误或是一个OTL定义的错误。序号函数、成员变量说明1char stm_text[2048 or OTL_EXCEP

2013-10-15 14:05:15 2081

翻译 OTL翻译(7) -- otl_connect类

otl_connect这个类封装了连接的功能,如连接、断开连接、提交、回滚等。otl_connect也就是一个用来创建连接对象并进行管理的类。序号方法、变量说明1int connected数据库是否已经连接的标志。该标志只是在数据库连接成功后才标志为1(成功)。如果一个已经连接成功数据库的连接在长时间没

2013-10-15 14:04:15 1422

翻译 OTL翻译(6) -- otl_stream流相关绑定变量

声明绑定变量本章节将详细的说明如何在otl_stream流里面声明绑定变量。SQL语句、SQL语句块或存储过程在程序里面使用的时候总是带有占位符。OTL里面带有一个小的解析器用来解析这些占位符,并且在内部进行变量的内存分配操作。在ORACLE里面占位符的表示方法与其他数据库不同,在ORACLE里面的占位符是通过带有冒号的前缀来表示的,如::f1/:supervisor_name/:em

2013-10-15 14:03:41 2288

redis设计与实现(第二版) 带目录

《Redis设计与实现》全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis

2017-09-01

redis-3.0注释版源码

本项目是注释版的 Redis 3.0 源码, 原始代码来自: https://github.com/antirez/redis 。 这份注释是作者在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。 在注释的过程中, 除了少量空格和空行方面的调整外, 没有对原始代码进行任何其他改动, 最大程度地保证了代码的“原汁原味”。 希望这份注释源码能给大家学习和了解 Redis 带来一点帮助

2017-09-01

空空如也

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

TA关注的人

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