<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[opah521的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/opah521</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; opah521]]></copyright><item><title><![CDATA[关于Too many fetch-failures错误]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/7050330</link><guid>https://blog.youkuaiyun.com/opah521/article/details/7050330</guid><author>opah521</author><pubDate>Wed, 07 Dec 2011 16:25:55 +0800</pubDate><description><![CDATA[问题现场：[root@localhost local_input]# hadoop jar MyWordCount.jar MyWordCount input output4
11/12/07 16:03:29 INFO security.Groups: Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMappi]]></description><category></category></item><item><title><![CDATA[不定参数的应用(转载)]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6653826</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6653826</guid><author>opah521</author><pubDate>Tue, 02 Aug 2011 14:41:51 +0800</pubDate><description><![CDATA[不定参数的应用
不定参数当年做为C/C++语言一个特长被很多人推崇，但是实际上这种技术并没有应用很多。除了格式化输出之外，我实在没看到多少应用。主要原因是这种技术比较麻烦，副作用也比较多，而一般情况下重载函数也足以替换它。尽管如此，既然大家对它比较感兴趣，我就简单总结一下它的使用和需要注意的常见问题。
原理
刚学C语言的时候，一般人都会首先接触printf函数。通过这个函数，你可以打印不定个]]></description><category></category></item><item><title><![CDATA[大小端，以及位域问题。]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6549798</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6549798</guid><author>opah521</author><pubDate>Fri, 17 Jun 2011 01:17:00 +0800</pubDate><description><![CDATA[大小端 端模式（Endian）的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类，从圆头开始将鸡蛋敲开的人被归为Big Endian，从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头（Big-Endian）敲开还是从小头（Little-Endian）敲开。在计算机业Big Endi]]></description><category></category></item><item><title><![CDATA[关于指针和数组对申请内存malloc和作为参数传递的一些问题]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6549384</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6549384</guid><author>opah521</author><pubDate>Thu, 16 Jun 2011 20:32:00 +0800</pubDate><description><![CDATA[试题1.void GetMemory( char *p ){　p = (char *) malloc( 100 );}void Test( void ) {　char *str = NULL;　GetMemory( str ); 　strcpy( str, "hello world" );　printf( str );}   试题2：]]></description><category></category></item><item><title><![CDATA[assert 断言函数/宏]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6549368</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6549368</guid><author>opah521</author><pubDate>Thu, 16 Jun 2011 20:19:00 +0800</pubDate><description><![CDATA[        编写代码时，我们总是会做出一些假设，断言就是用于在代码中捕捉这些假设，可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式，程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证，因此可以在测试时启用断言，而在部署时禁用断言。同样，程序投入运行后，最终用户在遇到问题时可以重新起用断言。  　　前置条件断言：代码执行之前必须具备的特性 ]]></description><category></category></item><item><title><![CDATA[strcpy函数用法详细解释和其相关问题]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6549360</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6549360</guid><author>opah521</author><pubDate>Thu, 16 Jun 2011 20:12:00 +0800</pubDate><description><![CDATA[ char *strcpy(char *dest,char *src); 功能：把src所指由NULL结束的字符串复制到dest所指的数组中。说明：src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。src字符串尾的字符串结束标识符/0也会被复制过去，复制完成后s1中的内容会被覆盖掉 strlen函数的意思是测试字符串的字符长度，不含字符串结束标志的。]]></description><category></category></item><item><title><![CDATA[指针以及malloc]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546727</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546727</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 17:37:00 +0800</pubDate><description><![CDATA[.#include      #include      void getmemory(char *p)     {       p=(char *) malloc(100);       strcpy(p,"hello world");     }     int main( )     {       char *str=NULL;       getm]]></description><category></category></item><item><title><![CDATA[对地址的一些操作。]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546583</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546583</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 16:49:00 +0800</pubDate><description><![CDATA[要对绝对地址0X100000赋值，我们可以用 （unsigned int *)0x100000 = 1234; 那么要是想让程序跳转到绝对地址0X10000去执行，应该怎么做？  *（（void （*） （） ） 0x10000 ) (); 首先要将0x100000强制转换成函数指针，即： （void (*) () ) 0x100000 然后再调]]></description><category></category></item><item><title><![CDATA[Linux进程间通信方式]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546510</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546510</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 16:29:00 +0800</pubDate><description><![CDATA[1.信号（signal） 2.管道（pipe）及命名管道（fifo） 3.消息队列（message）.   消息队列是消息的连接表。消息队列客服信号承载信息少、管道只能承载无格式字节流及缓冲区太小受限等缺点 4.共享主存(shared memory).    共享主存通常与其他通信机制（如信号量）结合使用，以解决进程通信中的同步与互斥问题。 5.信号量(semaph]]></description><category></category></item><item><title><![CDATA[进程同步机制的优缺点比较，......同步机制包括 “原子操作 信号量机制 自旋锁 管程，会合，分布式系统”等]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546410</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546410</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 15:57:00 +0800</pubDate><description><![CDATA[原子操纵是指不会被线程调度机制打断的操纵。 信号量（Semaphore）及PV操作优：PV操作能够实现对临界区的管理要求；实现简单；允许使用它的代码休眠，持有锁的时间可相对较长。缺：一个信号量只能置一次初值，以后只能对之进行p操作或v操作。由此也可以看到，信号量机制必须有公共内存，不能用于分布式操作系统，这是它最大的弱点。信号量机制功能强大，但使用时对信号量的操作分散，而且难以控制，读写和]]></description><category></category></item><item><title><![CDATA[进程和线程的差别]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546347</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546347</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 15:31:00 +0800</pubDate><description><![CDATA[线程是指进程内的一个执行单元,也是进程内的可调度实体.线程与进程的区别:(1)调度：线程作为调度和分配的基本单位，进程作为拥有资源的基本单位(2)并发性：不仅进程之间可以并发执行，同一个进程的多个线程之间也可并发执行(3)拥有资源：进程是拥有资源的一个独立单位，线程不拥有系统资源，但可以访问隶属于进程的资源. (4)系统开销：在创建或撤消进程时，由于系统都要为之分配和回收资源，导致系统的开销明显大]]></description><category></category></item><item><title><![CDATA[LINUX内核中min和max宏的学习]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546304</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546304</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 15:19:00 +0800</pubDate><description><![CDATA[add linux kernel min, max define:include/linux/kernel.h/* * min()/max() macros that also do * strict type-checking.. See the * "unnecessary" pointer comparison. */#define min(x,y) /(__]]></description><category></category></item><item><title><![CDATA[程序占用的内存分配]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6546091</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6546091</guid><author>opah521</author><pubDate>Wed, 15 Jun 2011 14:18:00 +0800</pubDate><description><![CDATA[1.栈区（stack） ---- 由编译器自动分配释放，存放函数的参数值，局部变量的值。其操作方式类似于数据结构中的栈。 2.堆区（heap） ---- 一般由程序员分配释放，若程序员不释放，程序结束时可能由OS回收。注意它与数据结构中的堆是两码事。 3.全局区（静态区）（static） ----  全局变量和静态变量的存数放在一块的，初始化的全局变量和静态变量在一块区域，未初始化]]></description><category></category></item><item><title><![CDATA[(*p)++和*（p++）和*p++的区别]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6544227</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6544227</guid><author>opah521</author><pubDate>Tue, 14 Jun 2011 16:49:00 +0800</pubDate><description><![CDATA[(*p)++，是先取指针P的值，然后对其值进行++运算，*（p++），是先对指针P进行++运算，然后再取取值，*p++，同*(p++)，因为按优先级来看，*和++是同级，他们都是从右到左的顺序进行运算，所以先++，再*。]]></description><category></category></item><item><title><![CDATA[ const T 与T const(const T vs.T const的翻译 Dan Saks)]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6544046</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6544046</guid><author>opah521</author><pubDate>Tue, 14 Jun 2011 15:59:00 +0800</pubDate><description><![CDATA[在我的上一个专栏里，我讨论了为什么C++在数据存入ROM所使用的规则比C语言所使用的规则稍微复杂原因的其中一个。关于这个话题现在我有更多的内容想说，但是在那之前，我很乐意先回答Phil Baurer先生通过E-mail向我咨询的一个关于小松（日本一个地方）小型采矿系统的问题：“我们正在对使用带有typedef的const的问题饶有兴趣。我希望您评论下这种用法。我正在思考是不是我们碰巧遇到了一些我们]]></description><category></category></item><item><title><![CDATA[预处理器标识]]></title><link>https://blog.youkuaiyun.com/opah521/article/details/6544025</link><guid>https://blog.youkuaiyun.com/opah521/article/details/6544025</guid><author>opah521</author><pubDate>Tue, 14 Jun 2011 15:52:00 +0800</pubDate><description><![CDATA[指令             用途         #           空指令，无任何效果         #include    包含一个源代码文件         #define     定义宏         #undef      取消已定义的宏         #if         如果给定条件为真，则编译下面代码         #ifdef      如果宏已经定义，则编译下面]]></description><category></category></item></channel></rss>