自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有规律的世界

为一个清晰的世界而努力!

  • 博客(21)
  • 收藏
  • 关注

原创 Linux系统检测工具(部分)

1、Vmstat输出格式(centos 6.0):procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r  b       swpd   free           buff     cache      si   so    bi    bo   in     cs   u

2013-06-14 16:21:32 689

原创 MySQL代码阅读笔记之代码编译调试

关于代码的编译,网上有很多资料,我这里不做详细的描述。推荐这篇博客,可以按照他的方法去做:http://blog.csdn.net/yeno/article/details/8053571我重点要说的是代码的调试:我用gdb来调试MySQL代码:$gdb --args  /usr/local/mysql/bin/mysqld $b mysql_select$b my_n

2013-01-21 17:16:06 789

原创 MySQL源码阅读笔记之代码结构

代码版本:MySQL5.5.28源代码目录布局:下面就一些重要的源代码文件夹作一个简单的说明:BUILD:编译配置并为所有被支持的平台制作文件,内含在各个平台、各种编译器下进行编译和链接的脚本。例如compile-pentium64-debug表示在pentium64架构上进行编译的脚本。autorun.sh                      compile-penti

2013-01-21 15:13:16 2903 1

原创 ANSI C内存管理API函数

void* malloc(size_t  __size):malloc()函数在内存动态存储区中分配一个长度为size字节的连续空间。返回一个指向所分配的连续存储域的起始地址的指针。当函数未能成功分配存储空间时(如内存不足)返回一个NULL指针。void  free(void *__ptr):释放malloc()申请的内存void *realloc(void *__ptr,size_t

2013-01-09 20:38:47 561

原创 栈和堆的区别

栈是由编译器在程序运行时分配空间区域,由操作系统维护。里面的变量通常是局部变量,参数函数等。堆是由malloc()(c++语言为new运算符)分配的内存块,内存释放由程序员手动控制,在c语言使用free()函数完成(c++中为delete)。栈和堆得主要区别有以下几点:1.管理方式不同   程序在运行时由操作系统自动管理,无需程序员手工控制;而堆空间的申请释放工作由程序员控制,容易产生内存

2013-01-09 19:17:03 356

原创 Autoconf/Automake

Autoconf/Automake 工具用于自动创建功能完善的Makefile文件。当前大多数软件包都用此工具生成Makefile文件。Autoconf/Automake 工具组主要包括:autoconf、automake、perl、m4。话不多话,通过一个简单的实例来展示其使用:1.检测工具组是否安装:2.使用Emacs编辑源程序:3.使用Autoscan工具生成co

2013-01-08 23:46:04 412

原创 GCC/G++编译实例

2013-01-08 20:22:52 485

原创 Linux常用命令之tar打包器

我们如果要发布包含大量程序和文档,则需要对其进行打包压缩。在Shell命令下,可以使用的文件压缩工具有:gzip,bzip2,zip。对应的压缩和解压工具如下:文件类型压缩工具解压工具.gzgzipgunzip.bz2bzip2bunzip2.zipzipunziptar 命令用来创建备份和归档。t

2013-01-08 19:42:46 392

原创 几个常见的C函数

typedef unsigned char byte;void *memcpy(void *pvTo, const void *pvFrom, size_t size) {    assert((pvTo != NULL) && (pvFrom != NULL));    byte *pbTo = (byte *) pvTo;    byte *pbFrom = (byte *) pvFr

2012-10-31 17:26:30 564

原创 n个元素进栈,共有多少种出栈顺序?

C(2n,n)/(n+1) (C(2n,n)表示2n里取n),并且有个名字叫Catalan数。http://en.wikipedia.org/wiki/Catalan_number有详细解释。

2012-10-31 17:15:07 1044

原创 线性表之顺序表示与实现

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。线性表的动态分配顺序存储结构: #define LIST_INIT_SIZE 10 /* 线性表存储空间的初始分配量 */ #define LISTINCREMENT 2 /* 线性表存储空间的分配增量 */ typedef struct { ElemType *elem; /* 存储空间基址 */

2012-04-29 14:03:40 304

原创 《编程之美》3.1 字符串移位包含的问题

问题:给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含。例如,给定s1 = AABCD 和 s2 = CDAA ,返回true;给定s1 = ABCD 和 s2 = ACBD,返回false.解法一:使用最直接的方法对s1进行循环移位,再进行字符串包含的判断,从而遍历其所有的可能性。#includeusing namespace std;c

2012-04-28 21:55:20 565

原创 《编程之美》 2.3 寻找发帖的“水王”

问题描述:Tango 是微软亚洲研究院的一个实验项目,研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说,Tango有一大“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子总数的一半。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的Tango水王吗?分析:如果对ID列表排序然后再寻

2012-04-28 19:32:06 6664

原创 linux 库的创建与使用

linux 库的概念库是一种软件组件技术,库里面封装了数据和函数,提供给用户程序调用。库的使用可以使程序模块化,提高程序的编译速度,实现代码重用,使程序易于升级。windows 系统本身提供并使用了大量的库,包括静态链接库(.lib文件)和动态链接库(.dll文件)。类似的,linux操作系统也使用库。linux系统中,通常把库文件存放在/usr/lib或/lib目录下。linux库文件名

2012-04-26 23:43:35 361

原创 《深入理解计算机系统》第 7 章 链接

链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储器并执行。在现代系统中,链接是由链接器的程序自动执行的。理解链接器将帮助你构造大型程序。理解链接器将帮助你避免一些危险的编程错误理解链接将帮助你理解语言的作用域规则是如何实现的理解链接将帮助你理解其他重要的系统概念理解链接将使你能够利用共享库编译器驱动程序:1.预编译

2012-04-26 16:57:56 481

原创 《编程之美》2.2 不要被阶乘吓倒(c++ 源码)

问题1:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?问题2:求N!的二进制表示中最低位1的位置。问题1源代码:#includeusing namespace std;int GetNumber1_Zeros(int N){ int ret = 0; for(int i = 1;i  {     int j = i;     while(j % 5

2012-04-23 21:29:16 499

原创 《编程之美》2.1 求二进制数中1的个数(c++源代码)

问题:对于一个字节(8bit)的无符号整型变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。源代码如下#includeusing namespace std;#define BYTE unsigned charint Cout1(BYTE v){ int num = 0; while(v) {  if(v % 2 == 1)  {

2012-04-22 04:29:06 615

原创 腾讯2012实习生招聘面试题(部分)

题目:选择题:在如下8*6的矩阵中,请计算从A移动到B一共有多少走法?要求每次只能向上或向右移动一格,并且不能经过P。()       B           P

2012-04-20 23:31:36 1155

原创 《深入理解计算机系统》第3章 程序的机器级表示

要点一:数据格式(c语言在IA32中表示的大小)要点二:IA32的整数寄存器要点三:操作数指示符要点五:数据传送指令要点六:算术和逻辑操作要点七:特殊的算术操作要点八:条件码设置条件码指令访问条件码 要点九:跳转指令及其编码

2012-04-18 19:52:21 597

原创 《深入理解计算机系统》 第2章 信息的表示和处理

要点一:虚拟地址空间1.大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的存储器单位,而不是在存储器中访问单独的位。2.机器级程序将存储器视为一个非常大的字节数组,称为虚拟存储器(virtual memory),存储器的每个字节都由一个唯一的数字来标识,即它的地址,所有可能地址的集合称为虚拟地址空间(virtual address space)。要点二:二进制,八进制,

2012-04-17 11:41:50 622

原创 《深入理解计算机系统》第一章 计算机系统漫游

计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序。深入理解底层计算机系统以及它对应用程序的影响有助于提高程序的性能。1.1 信息就是位 + 上下文      源程序实际上就是一个由值0和1组成的位序列。程序是由文本字符表示的,8个位被组织成一组,成为字节,每个字节表示为程序中的文本字符。文本字符大都用ASCII 码表示。      ASCII码:(A~Z:65~90

2012-04-16 19:20:09 588

空空如也

空空如也

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

TA关注的人

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