自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (8)
  • 收藏
  • 关注

转载 ceph浅析系列

转载自:http://yizhaolingyan.net/?p=11开源技术专家章宇同学(@一棹凌烟)在C3沙龙分享过Ceph之后,最近来了劲头,一口气写了一系列《Ceph浅析》的博文,共8篇:“Ceph浅析”系列之一——前言“Ceph浅析”系...

2018-08-24 14:33:21 222

原创 offsetof和contain_of

#define offsetof(type,  member) (size_t)(&(((type*)0)->member))说明:其中type表示某结构体类型,member表示该结构体类型某一成员名。offsetof的功能是求结构体中某一成员在整个结构体中的偏移量。具体方法是将地址0强制转换成type*类型,此时成员的地址就是成员在结构体中的偏移量。有了offsetof,就可

2015-05-19 21:44:51 690

原创 Linux如何创建idle进程

关于idle进程    也就是pid=0的进程。它是内核完成初始化后所创建的第一个进程,在系统空闲时执行。它的代码很简单:for(;;) pause();   强调一下,idle进程是用户态进程。那么问题来了,内核从启动到初始化过程总都处在内核态,那么内核是怎么创    建idle并且切换到用户态呢?   一种很直接简单的想法是,内核直接调用用户空间的代码实现内核态到用户态的转换,

2015-04-24 10:22:03 1479

原创 linux性能监控之free

free用于显示系统内存使用情况,一直对free的输出迷惑不清,特总结如下:12 3 4 5 6    free命令的输出结果来自于文件/proc/meminfo,默认以KB为单位显示,可以通过-m选项以MB显示,为了方便起见,将输出结果划分为4行3列,FO[1][1]表示输出结果的第一行第一列,即total。以下是各行各列的解释:FO[2][1]:表示系统认为

2014-12-28 22:08:19 493

原创 二叉查找树非递归实现

一、二叉查找树概念二叉查找树也称二叉排序树、二叉搜索树,它有如下特点:1、它是一个二叉树(不一定是完全二叉树)。2、对于树上每个节点,如果存在左孩子,则左孩子的值比自己小,如果存在右孩子,则右孩子的值比自己大。3、对于每个节点,它的左子树和右子树都是二叉查找树。从以上特点可以总结出一个很重要的性质:中序遍历二叉查找树,将得到一个已排好序的序列。另外二叉查找树在查找方

2014-12-14 12:00:55 581

原创 二叉树的非递归实现

二叉树的概念就不多讲,直接上代码:#include #include #define STACK_INIT_SIZE 10#define INCREASE_SIZE 10typedef struct Node{ char data; struct Node *left; struct Node *right; int lflag; int rflag;}Node,

2014-12-14 11:56:52 364

原创 由快速排序引申的两个分类问题

快速排序的关键操作在于分割,即以某个关键值为轴讲序列分割成比轴大和比轴小的两类。下面是由此引申的两个分类问题。1.已有有一组整数,如何使得数组中奇数在偶数的前面。这个问题的解法和快速排序的分割很相似,代码如下:void do_parttion(int *pdata, int size){ int i, j; i = 0; j = si

2014-12-11 14:23:22 431

原创 双向链表的简单实现

一、简单说说链表概念链表和数组在逻辑上讲都属于线性表,只是在物理上他们的存储方式不一样。怎么个不一样就不废话了,但是总结一条,这种存储方式的不同使得数组便于随机存取,而链表在删除和插入方面效率要比数组高。二、代码实现:(操作指针是要保持头脑清醒,时刻注意NULL,你懂得,哈哈)#include #include #include #define DATA_SIZE 10ty

2014-12-10 15:59:54 325

原创 二路归并排序实现

一、归并算法思想归并算法是建立在归并操作的基础上的。归并操作是指将两个或者多个以上的有序序列合并成一个新的序列,得到的新序列仍然有序。假设带排序序列大小为n,则初始状态下带排序序列有n个有序的子序列,其中每个子序列的大小为1,经过一次“两两归并”后,带排序序列将包含多个有序的大小为2的子序列。。。以此类推,直到整个序列有序。二、代码实现#include #includ

2014-12-07 18:46:50 388

原创 堆排序实现

一、堆排序简单介绍1、什么是堆:堆是一个完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、从一个节点开始筛选:筛选的目的是使得以当前开始结点为根的子树也是一个堆。3、堆排序的基本过程:1、从最后一个非叶子节点(当前待排序节点数/2)开始筛选,筛选到第一个节点结束,此时第一个节点就是当前的最值。2、将当前最值与最后一个节点

2014-12-07 17:10:19 391

原创 快速排序的非递归实现

一、快速排序简单介绍,参考http://linux.cn/article-3613-1.html快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实

2014-12-07 15:36:15 378

原创 为什么传统以太网最小帧长度是64字节

概念说明:这里说的传统以太网是指10M以太网

2014-11-22 18:49:48 3140

原创 利用文件锁保证一个程序最多只有一份拷贝在运行

一、利用文件上锁的方法。原理:chengx

2014-10-17 00:03:44 429

原创 Unix通过fork两次避免僵尸进程

1,、基本概念孤儿进程:父进程

2014-08-23 17:13:58 1118 3

go语言编程

golang是面向并发的语言,很多人都说他将是互联网时代c的替代者,这本书介绍go语言的基本语法,容易学习,容易上手。

2015-04-29

C++ 标准库

这本书告诉读者,C++标准里面给开发人员提供了哪些很好的工具,其中主要部分是STL,适合STL初学者。

2015-04-29

c++ templates

在深入学习stl之前最好先阅读下本书的前面几章,了解模板编程里面的基本语法,还一些最常用的技巧,对阅读stl的源码很有帮助。

2015-04-29

More Effective C++

看完Effective C++之后,趁热打铁看这本书吧,里面有些C++开发技巧很精彩。

2015-04-29

Effective C++

其中凝结了前辈的经验,给了读者很多建议,让读者在开发过程中能够更好的使用C++

2015-04-29

stl源码剖析 带书签

本书选择sgi stl源码进行剖析,让读者对stl内部容器、迭代器、算法等有一个很具体的了解,以便将来更好的使用stl,而且借此书也可以好好复习数据结构和算法的知识。

2015-04-29

linux0.11内核完全注释

linux0.11的代码量相对现在的linux内核来说很小,再加上作者对代码的完全注释,可以让初学者比较具象的了解操作系统原理,让人觉得linux内核,也不是传说中的那么神秘!

2015-04-29

空空如也

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

TA关注的人

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