<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MacroCrazier</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MacroCrazier]]></copyright><item><title><![CDATA[IO与文件读写---同步/异步与阻塞/非阻塞的区别]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/8075139</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/8075139</guid><author>MacroCrazier</author><pubDate>Mon, 15 Oct 2012 23:12:44 +0800</pubDate><description><![CDATA[首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.

举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了.

前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触]]></description><category></category></item><item><title><![CDATA[面试题，在指定内存位置中分配一个对象]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/8071057</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/8071057</guid><author>MacroCrazier</author><pubDate>Sun, 14 Oct 2012 23:20:32 +0800</pubDate><description><![CDATA[今天遇到一个面试题，大意是要求在指定的内存 void *pMem处分配一个对象，让对象在pMem处存储，直接傻眼了，不会做，现在记录如下。


在指定位置安放对象(Placement of Objects)

new操作符的缺省方式是在自由内存空间中创建对象。如果希望在指定的地方分配对象，就应该使用这里介绍的方法。看下面的例子：

class X {

public:

X(]]></description><category></category></item><item><title><![CDATA[C++学习-构造函数初始化列表(4)]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/8039493</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/8039493</guid><author>MacroCrazier</author><pubDate>Thu, 04 Oct 2012 14:14:55 +0800</pubDate><description><![CDATA[作者：gzshun. 原创作品，转载请标明出处！
来源：http://blog.youkuaiyun.com/gzshun



从概念上讲，可以认为构造函数分两个阶段进行：
1.初始化阶段；
2.普通的计算阶段。(计算阶段由构造函数函数体中的所有语句组成)
不管成员是否在构造函数初始化列表中显示初始化，类类型的数据成员总是在初始化阶段初始化。初始化发生在计算阶段的开始之前。
建议：使用构造]]></description><category></category></item><item><title><![CDATA[C++子类的构造函数]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/8037326</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/8037326</guid><author>MacroCrazier</author><pubDate>Tue, 02 Oct 2012 22:15:54 +0800</pubDate><description><![CDATA[构造方法用来初始化类的对象，与父类的其它成员不同，它不能被子类继承（子类可以继承父类所有的成员变量和成员方法，但不继承父类的构造方法）。因此，在创建子类对象时，为了初始化从父类继承来的数据成员，系统需要调用其父类的构造方法。
    如果没有显式的构造函数，编译器会给一个默认的构造函数，并且该默认的构造函数仅仅在没有显式地声明构造函数情况下创建。
构造原则如下：
    1. 如果子类没有定]]></description><category></category></item><item><title><![CDATA[多重继承及虚继承中对象内存的分布]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/8036363</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/8036363</guid><author>MacroCrazier</author><pubDate>Tue, 02 Oct 2012 11:12:49 +0800</pubDate><description><![CDATA[这篇文章主要讲解G++编译器中虚继承的对象内存分布问题，从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。问题拿捏得十分到位，下面是我对原文的翻译，原文见这里(By Edsko de Vries, January 2006)。
http://www.alidata.org/archives/878

本文是介绍C++]]></description><category></category></item><item><title><![CDATA[i++与++i的效率差别]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/8033745</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/8033745</guid><author>MacroCrazier</author><pubDate>Sun, 30 Sep 2012 09:58:25 +0800</pubDate><description><![CDATA[i++与++i的区别，我就不多说了。今天主要说明一下它们的效率上的差别。


如果只是对内建数据类型（如int），两者的差别很小，基本上没有，这个可以从汇编代码上看出来。
但是如果对于C++里的类，那++i和i++两个是运算符重载，它们的区别就比较明显了：
i++和++i的   最重要的区别大家都知道就是   +1和返回值的顺序   
  但，两这还有一个区别（在C++中）就是i++在]]></description><category></category></item><item><title><![CDATA[C语言排序算法]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7629779</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7629779</guid><author>MacroCrazier</author><pubDate>Mon, 04 Jun 2012 10:42:46 +0800</pubDate><description><![CDATA[1. 插入排序：
    
算法描述

一般来说，插入排序都采用in-place在数组上实现。具体算法描述如下：

从第一个元素开始，该元素可以认为已经被排序取出下一个元素，在已经排序的元素序列中从后向前扫描如果该元素（已排序）大于新元素，将该元素移到下一位置重复步骤3，直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置中重复步骤2~5
如果比较操作的代价比交换操作大的]]></description><category></category></item><item><title><![CDATA[【趣味数学】24点算法大全]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7590464</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7590464</guid><author>MacroCrazier</author><pubDate>Tue, 22 May 2012 12:30:58 +0800</pubDate><description><![CDATA[(序号前面带*号的，解中用到了分数)

1) 1118 (1+1+1)*8 
2) 1126 (1+1+2)*6 
3) 1127 (1+2)*(1+7) 
4) 1128 (1+1*2)*8 
5) 1129 (1+2)*(9-1) 
6) 1134 4*(1+1)*3 
7) 1135 (1+3)*(1+5) 
8) 1136 (1+1*3)*6 
9) 1137 3*(1]]></description><category></category></item><item><title><![CDATA[valgrind内存检查工具]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7465787</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7465787</guid><author>MacroCrazier</author><pubDate>Mon, 16 Apr 2012 14:53:03 +0800</pubDate><description><![CDATA[推荐一个程序，这几天用C语言写了一个程序，跑的数据量小的时候没有什么问题，
当数据量比较大时，总是报错，提示的错误大概是：
＊＊＊glibc detected*** ... :munmap_chunk(): invalid pointer: 0x08...
在网上google了一下，也有很多人遇到了这个问题，好像是内存和堆栈分配的问题，程
序存在内存泄露。
然后就搜所到了这个比较强大的工具：val]]></description><category></category></item><item><title><![CDATA[Framebuffer how to 编程指导]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7458192</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7458192</guid><author>MacroCrazier</author><pubDate>Fri, 13 Apr 2012 15:48:20 +0800</pubDate><description><![CDATA[原文： http://www.ummon.eu/Linux/API/Devices/framebuffer.html
       注：本文是Wiebe Zoon ;
wiebe@linvision.com 的一部分，原文为英文版，本文由highbar
翻译。如转载,请注明原作者及译者。     


7. Framebuffer 

      7.1 Framebuffer介绍]]></description><category></category></item><item><title><![CDATA[Console programming HOWTO——framebuffer howto]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7458093</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7458093</guid><author>MacroCrazier</author><pubDate>Fri, 13 Apr 2012 15:27:12 +0800</pubDate><description><![CDATA[原文： http://www.ummon.eu/Linux/API/Devices/framebuffer.html
      

7. Framebuffer 

      7.1 Framebuffer介绍
            这是一个关于如何编程的文档，因此，请在你编译或执行例子之前，正确配置你的framebuffer设备。

       用framebuffer设]]></description><category></category></item><item><title><![CDATA[UNIX/Linux specific links]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7458018</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7458018</guid><author>MacroCrazier</author><pubDate>Fri, 13 Apr 2012 15:14:49 +0800</pubDate><description><![CDATA[UNIX/Linux specific links

Assemly HOWTO: 
http://docsrv.caldera.com:8457/en/Howto/Assembly/index.htmlBASH programming - introduction HOWTO: 
http://docsrv.caldera.com:8457/en/Howto/Bash-Prog-Intr]]></description><category></category></item><item><title><![CDATA[itoa的两种实现]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7432619</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7432619</guid><author>MacroCrazier</author><pubDate>Fri, 06 Apr 2012 15:45:31 +0800</pubDate><description><![CDATA[itoa的两种实现
一种是linux的实现，一种是Solaris的实现，代码如下：、

namespace linux
{
    void itoa( int i,char* string) 
    {
        int power, j;
        j=i; 
        for (power=1;j>=10;j/=10) 
            pow]]></description><category></category></item><item><title><![CDATA[推荐一款嵌入式Linux的FTP服务端软件：stupid-ftpd]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7360658</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7360658</guid><author>MacroCrazier</author><pubDate>Fri, 16 Mar 2012 13:42:18 +0800</pubDate><description><![CDATA[在嵌入式Linux系统中，有时候需要搭建一个ftp服务器，以便windows或linux系统去访问嵌入式linux系统的数据。现在流行的ftp和vsftpd软件相对比较大，在嵌入式Linux系统下不太合适。最近由于需要，发现了一款很小型的ftp服务器，在这里分享。stupid-ftpd
 下载页面

根据自己的需要，修改Makefile，将gcc修改为交叉工具链的gcc，比如mips-gnu]]></description><category></category></item><item><title><![CDATA[FAQ: 终端和控制台]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7344800</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7344800</guid><author>MacroCrazier</author><pubDate>Mon, 12 Mar 2012 14:28:09 +0800</pubDate><description><![CDATA[转载自： http://blog.cliffwoo.com/?p=8

吴晋 （cliffwoo@gmail.com）
FoOTOo OpenSource Lab
由于在很多朋友对终端的概念一直不是很清楚，因此写了这个FAQ，希望能够帮助大家理解这些概念。不妥之处，还请大家来信指出。

Q：/dev/console 是什么？

A：/dev/console即控制台，是与操作系统交互]]></description><category></category></item><item><title><![CDATA[五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/7051616</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/7051616</guid><author>MacroCrazier</author><pubDate>Wed, 07 Dec 2011 22:33:34 +0800</pubDate><description><![CDATA[http://www.awflasher.com/blog/archives/939



现今存在的开源协议很多，而经过Open Source Initiative组织通过批准的开源协议目前有58种（http://www.opensource.org/licenses/alphabetical）。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源]]></description><category></category></item><item><title><![CDATA[gcc命令行详解]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/6998400</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/6998400</guid><author>MacroCrazier</author><pubDate>Mon, 21 Nov 2011 22:33:25 +0800</pubDate><description><![CDATA[gcc命令行详解
1、gcc包含的c/c++编译器
gcc、cc、c++、g++
gcc和cc是一样的，c++和g++是一样的，一般c程序就用gcc编译，c++程序就用g++编译
2、gcc的基本用法
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test这样将编译出一个名为test的程序
-o参数用来指定生成程序的名字
3、为什么会出现un]]></description><category></category></item><item><title><![CDATA[生活在 Bash shell 中]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/6993821</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/6993821</guid><author>MacroCrazier</author><pubDate>Sun, 20 Nov 2011 20:27:17 +0800</pubDate><description><![CDATA[生活在 Bash shell 中，熟记以下快捷键，将极大的提高你的命令行操作效率。
编辑命令

Ctrl + a ：移到命令行首Ctrl + e ：移到命令行尾Ctrl + f ：按字符前移（右向）Ctrl + b ：按字符后移（左向）Alt + f ：按单词前移（右向）Alt + b ：按单词后移（左向）Ctrl + xx：在命令行首和光标之间移动Ctrl + u ：从光标处删除至命令行首]]></description><category></category></item><item><title><![CDATA[在Linux下使用DNW给开发板下载]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/6984535</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/6984535</guid><author>MacroCrazier</author><pubDate>Thu, 17 Nov 2011 21:25:09 +0800</pubDate><description><![CDATA[Created 星期四 17 十一月 2011

介绍：
DNW是通过USB烧写软件到ARM板的工具, 由三星公司开发, 可是这个软件只有Window版本. 在ARM9之家论坛上发现有人重写了个简单的命令行版本, 源代码可以从Google Code上下载:dnw2_linux_latest.tgz （http://code.google.com/p/c8051f320dev/download]]></description><category></category></item><item><title><![CDATA[在NAND FLASH上建立YAFFS2文件系统]]></title><link>https://blog.youkuaiyun.com/MacroCrazier/article/details/6982819</link><guid>https://blog.youkuaiyun.com/MacroCrazier/article/details/6982819</guid><author>MacroCrazier</author><pubDate>Thu, 17 Nov 2011 17:18:35 +0800</pubDate><description><![CDATA[在NAND FLASH上建立YAFFS2文件系统（一）
By 
on 
2006-07-22 

经过了半个多月的努力，终于搞定nandflash的mtd驱动和上层的yaffs2文件系统。这半个多月来几乎每天都要和挫败感斗争，每天都要忍受这个方面，那个方面的bug。想想自己这半个多月来，也算看不少资料，得到不少人的帮助，总算是有点心得。鉴于国内搞yaffs2文件系统方面的资料还是很少，就]]></description><category></category></item></channel></rss>