<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cherry_hust的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cherry_hust</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cherry_hust]]></copyright><item><title><![CDATA[C++概述1]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/78455071</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/78455071</guid><author>cherry_hust</author><pubDate>Mon, 06 Nov 2017 15:14:34 +0800</pubDate><description><![CDATA[C++由C语言发展而来，增加了面向对象的机制，并且与C语言兼容，用C语言编写的程序可以不加修改用于C++.
面向对象程序设计，是针对开发较大规模的程序而提出来的，目的是提高软件开发的效率（不是执行效率）
1 C++引入命名空间 Namespace，为了避免命名冲突
指定所使用的变量时需使用::操作符，::操作符是域解析操作符
除了直接使用域解析操作符，还可以使用using声明，using声]]></description><category></category></item><item><title><![CDATA[C++的学习（战略篇）]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/78435682</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/78435682</guid><author>cherry_hust</author><pubDate>Fri, 03 Nov 2017 15:26:01 +0800</pubDate><description><![CDATA[读王垠《如何掌握所有的程序语言》笔记
1 重视语言特性，而不是语言
语言都有通用的特性，掌握一种语言，用清晰简单的思维模型写出好的代码。开始用一种新的程序语言，并不需要先去看大部头手册或者书籍，而是先有一个需要解决的问题。然后浏览下语言的手册，接着拿起一段代码来修改，把代码改成自己想要的样子。在这个过程中，他很快掌握这个语言。
随着需求出现，可能的问题
这个语言“变量定义”是什么语法，需要]]></description><category></category></item><item><title><![CDATA[Kernel BitMap 使用小例子]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/77200817</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/77200817</guid><author>cherry_hust</author><pubDate>Tue, 15 Aug 2017 22:06:33 +0800</pubDate><description><![CDATA[/*BitMapTest.c*/
#include 
#include 

#define BIT_CNT 65

static int __init test_init(void)
{
	long unsigned int * my_bitmap;
	int arr_size = (BIT_CNT - 1) / 64 + 1;
	int i;
	
	printk("init %d bit, %d]]></description><category></category></item><item><title><![CDATA[大端小端测试代码]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/77199611</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/77199611</guid><author>cherry_hust</author><pubDate>Tue, 15 Aug 2017 20:29:38 +0800</pubDate><description><![CDATA[#include 
#include 

union {
	int number;
	char s;
}test;

bool testBigEndin()
{
	test.number = 0x01000002;
	return (test.s == 0x01);
} 

int main()
{
	if (testBigEndin())
		printf("big");
	else
		pri]]></description><category></category></item><item><title><![CDATA[如何使用linux下载到正确的安装包1（软件源更新）]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/75682256</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/75682256</guid><author>cherry_hust</author><pubDate>Sat, 22 Jul 2017 09:26:49 +0800</pubDate><description><![CDATA[昨天实验室新来的学妹说ubuntu安装某Hadoop测试工具老是提示出错，缺这少那。
这种问题我以前也经常遇到，网上找到的安装包和Linux版本不兼容。不过后来装的多了，慢慢有了经验。 
已经使用apt-get install / yum (whatever类似的命令) 之后，显示没有可以更新的资源包，但是别处用到改资源还是提示版本不够？
那就是时候更新软件源了。
所谓软件源，我理解是下载]]></description><category></category></item><item><title><![CDATA[Linux 系统下 init 进程的前世今生]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/74091504</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/74091504</guid><author>cherry_hust</author><pubDate>Sun, 02 Jul 2017 10:07:03 +0800</pubDate><description><![CDATA[http://blog.jobbole.com/111610/]]></description><category></category></item><item><title><![CDATA[raid5_cache.c数据结构之r5l_io_unit]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72925186</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72925186</guid><author>cherry_hust</author><pubDate>Thu, 08 Jun 2017 19:03:04 +0800</pubDate><description><![CDATA[结构体代码
struct r5l_log {
	struct md_rdev *rdev;

	u32 uuid_checksum;

	sector_t device_size;		/* log device size, round to
					 * BLOCK_SECTORS */
	sector_t max_free_space;	/* reclaim run if free spac]]></description><category></category></item><item><title><![CDATA[list.h]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72918731</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72918731</guid><author>cherry_hust</author><pubDate>Thu, 08 Jun 2017 16:03:44 +0800</pubDate><description><![CDATA[1 list_for_each_entry(pos, head, member)
函数功能：遍历链表，查找指定类型
参数定义：pos-循环游标；head-链表头节点；member-头节点在结构体中的名称
返回结果：
/**
 * list_for_each_entry	-	iterate over list of given type
 * @pos:	the type * to use]]></description><category></category></item><item><title><![CDATA[raid5_cache.c数据结构之r5l_io_unit]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72911025</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72911025</guid><author>cherry_hust</author><pubDate>Thu, 08 Jun 2017 10:40:08 +0800</pubDate><description><![CDATA[1 r5l_io_unit
/*
 * an IO range starts from a meta data block and end at the next meta data
 * block. The io unit's the meta data block tracks data/parity followed it. io
 * unit is written to log di]]></description><category></category></item><item><title><![CDATA[bio.c]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72910612</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72910612</guid><author>cherry_hust</author><pubDate>Thu, 08 Jun 2017 10:11:16 +0800</pubDate><description><![CDATA[1 bio_add_page
函数功能：把page加入bio的bio_vec链表
参数：bio-目标bio；page-待加入的page；len-加入长度；offset-在页中偏移地址；
            注意到bio->bi_vec的结构，后三个参数用来给bio->bi_vec赋值
/*include/linux/blk_types.h*/
struct bio_vec {
    ]]></description><category></category></item><item><title><![CDATA[kmap_atomic/kunmap_atomic]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72834388</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72834388</guid><author>cherry_hust</author><pubDate>Thu, 01 Jun 2017 19:12:39 +0800</pubDate><description><![CDATA[/*
 *drivers/md/raid5-cache.c
 *r5l_write_stripe
 */
	for (i = 0; i disks; i++) {
		void *addr;

		if (!test_bit(R5_Wantwrite, &sh->dev[i].flags))
			continue;
		write_disks++;
		/* checksum is alread]]></description><category></category></item><item><title><![CDATA[void*]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72834268</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72834268</guid><author>cherry_hust</author><pubDate>Thu, 01 Jun 2017 18:57:58 +0800</pubDate><description><![CDATA[指针有两个属性：指向变量/对象的地址和长度——指针存储地址，指针类型决定长度，编译器根据指针类型从指针指向的地址向后寻址，比如int* 从地址向后寻找4字节，double*从指针向后寻找8字节。
void*是一种特别的指针，表示它没有类型/类型不能判断出指向对象的长度；任何指针都能赋值给void*，但只能获得变量/对象的地址，不知道大小；void*赋值给其他类型指针时，要指明转换类型，即说明存储]]></description><category></category></item><item><title><![CDATA[extern 变量/函数]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/72802993</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/72802993</guid><author>cherry_hust</author><pubDate>Mon, 29 May 2017 17:19:17 +0800</pubDate><description><![CDATA[一 extern作用
声明函数或者全局变量的作用范围，其声明的函数和变量可以在本模块和其他模块使用（注意是声明不是定义）。例如，模块B（编译单元）引用模块A定义的全局变量或函数，只要包含A模块的头文件即可，在编译阶段，模块B虽然找不到该函数值或变量，但它会在连接是从模块A生成的目标代码中找到此函数。
二 例子
/*main.c*/
#include 
#include "main.h"


]]></description><category></category></item><item><title><![CDATA[VMware-tools安装]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/70833157</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/70833157</guid><author>cherry_hust</author><pubDate>Wed, 26 Apr 2017 22:07:49 +0800</pubDate><description><![CDATA[环境搭建 federa 14 + linux 2.6.35.6
安装VMware-tools
按照：
http://pubs.vmware.com/workstation-12/index.jsp?lang=en_US&topic=/com.vmware.ws.using.doc/GUID-08BB9465-D40A-4E16-9E15-8C016CC8166F.html
出错1
bas]]></description><category></category></item><item><title><![CDATA[驱动开发-1 模块hello world]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/70739008</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/70739008</guid><author>cherry_hust</author><pubDate>Tue, 25 Apr 2017 14:29:06 +0800</pubDate><description><![CDATA[本文介绍在内核编译模块、加载和卸载模块的过程。
        首先开发环境是Linux-4.4.0+两份代码，hello.c+Makefile。
        这两份代码放到哪里呢？答案是哪里都可以，不过要注意放在一个文件夹下。这个文件夹的位置就是Makefile中的CURRENT_PATH，编译终端在这个文件夹打开就行。
hello.c
/*编写一个helloworld向内核输出*/]]></description><category></category></item><item><title><![CDATA[SSD+RAID优点以及存在问题]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/70209243</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/70209243</guid><author>cherry_hust</author><pubDate>Mon, 17 Apr 2017 11:31:02 +0800</pubDate><description><![CDATA[研究生期间研究在离硬件很近的软件层做优化，不管是SSD还是新研究的PCM存储，都是基于“软件提升提供丰富的服务，硬件改变却是革命性的颠覆”的大基础，当有独特特点的、更高性能的硬件出现后，上层的软件也必须随之改变，充分发挥其性能，而不是成为整个系统的瓶颈。
         SSD因为更快的速写速度而逐渐取代磁盘，但SSD也有固有缺陷，比如1 bit error，因为对存储系统容错性要求高；2 擦]]></description><category></category></item><item><title><![CDATA[数据结构-二叉树（递归前序、中序、后序遍历；栈实现中序变量；二叉树镜像）]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/70183293</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/70183293</guid><author>cherry_hust</author><pubDate>Sat, 15 Apr 2017 11:17:17 +0800</pubDate><description><![CDATA[*
 *前序、后序、中序变量二叉树（递归解法）
 *中序 栈实现
 *深度遍历 队列实现
 *应用：二叉树镜像（剑指offer）
 */
 
 typedef struct BiTNode *BiTree;//结点指针
 
 //前序遍历
 void preOrderTraverse(BiTree T)
 {
	 if(NULL == T)
		 return;
	 printf("%c", T-]]></description><category></category></item><item><title><![CDATA[C++ Primier学习笔记2-虚函数]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/70171854</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/70171854</guid><author>cherry_hust</author><pubDate>Fri, 14 Apr 2017 14:37:58 +0800</pubDate><description><![CDATA[虚函数
        多态（继承关系的多个类型）通过虚函数实现。


        关键字virtual告诉编译器不应当完成早绑定，而是自动实现晚绑定/运行时绑定所必须的所有机制。动态绑定只有当通过指针或者引用调用虚函数时才会发生。


        补充：析构函数可以是虚函数，所有的派生类的析构函数都将自动变为virtual型，不会出现由于析构函数未被调用而导致的内存泄漏（虚]]></description><category></category></item><item><title><![CDATA[c++ Primer学习笔记1-前言]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/70153751</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/70153751</guid><author>cherry_hust</author><pubDate>Thu, 13 Apr 2017 09:17:31 +0800</pubDate><description><![CDATA[C++语言可以看做三部分组成：低级语言，大部分继承自C；现代高级语言特性，定义自己的类型+组成大规模程序和系统；标准库，利用高级特性提供有用的数据结构和算法。]]></description><category></category></item><item><title><![CDATA[double计算]]></title><link>https://blog.youkuaiyun.com/cherry_hust/article/details/68067231</link><guid>https://blog.youkuaiyun.com/cherry_hust/article/details/68067231</guid><author>cherry_hust</author><pubDate>Wed, 29 Mar 2017 17:12:21 +0800</pubDate><description><![CDATA[在《剑指offer》里看到两个double不能直接使用 == 符号判断大小，有的资料也说double不能使用++。所以接下来这道单选题改怎么办呢？
       在c语言中，要求运算必须是整型的运算符是：


/

++

!=

%

        不妨写个简单的程序测试一下，#include 



int main()

{

	double a,b;

	a = ]]></description><category></category></item></channel></rss>