<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[冷枫叶]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[-- Linux Kernel Research, and Enjoy Life]]></description>
<link>http://hi.baidu.com/rwen2012</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[io模拟i2c程序(zt)]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/1da3bfdcab2c30abcd1166b1.html]]></link>
        <description><![CDATA[
		
		<div class="cnt">
<p>本程序是在周立功网上的程序的基础上修改的，原例里的ACK时序有点问题</p>
<p>/*******************************************************************************************************************<br>
此程序是I2C操作平台（主方式的软件平台）的底层的C子程序,如发送数据<br>
及接收数据,应答位发送,并提供了几个直接面对器件的操作函数，它很方便的与用<br>
户程序连接并扩展。<br>
注意:函数是采用软件延时的方法产生SCL脉冲,对高晶振频率要作一定的修改<br>
(本例是3us机器周期,如果系统对时</p></div> <a href="http://hi.baidu.com/rwen2012/blog/item/1da3bfdcab2c30abcd1166b1.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/%C7%B6%C8%EB%CA%BD%CA%B5%BC%F9">嵌入式实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/1da3bfdcab2c30abcd1166b1.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-02  10:08</pubDate>
        <category><![CDATA[嵌入式实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/1da3bfdcab2c30abcd1166b1.html</guid>
</item>

<item>
        <title><![CDATA[CodingStyle/Linux内核代码风格]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/308fd413897ca48a6538dbcf.html]]></link>
        <description><![CDATA[
		
		<br>
这是一个简短的文档，描述了linux内核的首选代码风格。代码风格是因人而异的，而且我<br>
不愿意把我的观点强加给任何人，不过这里所讲述的是我必须要维护的代码所遵守的风格，<br>
并且我也希望绝大多数其他代码也能遵守这个风格。请在写代码时至少考虑一下本文所述的<br>
风格。<br>
<br>
首先，我建议你打印一份GNU代码规范，然后不要读它。烧了它，这是一个具有重大象征性<br>
意义的动作。<br>
<br>
不管怎样，现在我们开始：<br>
<br>
<br>
第一章：缩进<br>
<br>
制表符是8个字符，所以缩进也是8个字符。有些异端运动试图将 <a href="http://hi.baidu.com/rwen2012/blog/item/308fd413897ca48a6538dbcf.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/308fd413897ca48a6538dbcf.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-23  11:04</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/308fd413897ca48a6538dbcf.html</guid>
</item>

<item>
        <title><![CDATA[Many Ways to Use Remote Desktop (X11VNC)]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/49713109029ec1a52fddd435.html]]></link>
        <description><![CDATA[
		
		<h2 class="contentheading"><a class="contentpagetitle" href="http://www.linux.com/learn/tutorials/102976-many-ways-to-use-remote-desktop-x11vnc">   Many Ways to Use Remote Desktop (X11VNC) </a></h2>
<div class="article-toolswrap">
<div class="article-tools clearfix">
<div class="article-meta"><span class="createdate">    Thursday, 22 October 2009 06:21  </span>       <span class="createby">    <a href="http://www.linux.com/community/profile?userid=10674">Aaron</a>  </span></div>
</div>
</div>
 <a href="http://hi.baidu.com/rwen2012/blog/item/49713109029ec1a52fddd435.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/Tools">Tools</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/49713109029ec1a52fddd435.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-23  08:51</pubDate>
        <category><![CDATA[Tools]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/49713109029ec1a52fddd435.html</guid>
</item>

<item>
        <title><![CDATA[ffs/fls]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/35db04a95e25abf61e17a2c9.html]]></link>
        <description><![CDATA[
		
		#if __LINUX_ARM_ARCH__ &lt; 5<br>
<br>
#include &lt;asm-generic/bitops/ffz.h&gt;<br>
#include &lt;asm-generic/bitops/__fls.h&gt;<br>
#include &lt;asm-generic/bitops/__ffs.h&gt;<br>
#include &lt;asm-generic/bitops/fls.h&gt;<br>
#include &lt;asm-generic/bitops/ffs.h&gt;<br>
<br>
#else<br>
<br>
static inline int constant_fls(int x)<br>
{<br>
int r = 32;<br>
<br>
if (!x)<br>
return 0;<br>
if (!(x &amp; 0xffff0000u)) {<br>
x &lt;&lt;= 16;<br>
r -= 16;<br>
}<br>
if (!(x &amp; 0xff000000u)) {<br>
x  <a href="http://hi.baidu.com/rwen2012/blog/item/35db04a95e25abf61e17a2c9.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/35db04a95e25abf61e17a2c9.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-19  15:36</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/35db04a95e25abf61e17a2c9.html</guid>
</item>

<item>
        <title><![CDATA[srand()/rand()]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/3ea0f63593ffd281a61e12ca.html]]></link>
        <description><![CDATA[
		
		#include &lt;stdio.h&gt;<br>
#include &lt;stdlib.h&gt;<br>
#include &lt;time.h&gt;<br>
#include &lt;sys/types.h&gt;<br>
<br>
void rand_init(void){<br>
srand(time(0));<br>
}<br>
<br>
u_int8_t&#160; get_rand8(void){<br>
return(rand() % 256);<br>
}<br>
u_int16_t get_rand16(void){<br>
return(rand() % 65536);<br>
}<br>
u_int32_t get_rand32(void){<br>
return(rand());<br>
}<br>
u_int32_t get_n(u_int32_t n){<br>
return(rand() % n);<br>
} 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/3ea0f63593ffd281a61e12ca.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-12  09:41</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/3ea0f63593ffd281a61e12ca.html</guid>
</item>

<item>
        <title><![CDATA[type.h]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/4163bb034fb6e782d53f7cf8.html]]></link>
        <description><![CDATA[
		
		#ifndef _TYPES_H_<br>
#define _TYPES_H_<br>
<br>
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))<br>
<br>
typedef unsigned char&#160;&#160;&#160; &#160;&#160;&#160; u8;<br>
typedef unsigned short&#160;&#160;&#160; &#160;&#160;&#160; u16;<br>
typedef unsigned int&#160;&#160;&#160; &#160;&#160;&#160; u32;<br>
typedef unsigned long long&#160;&#160;&#160; u64;<br>
typedef signed char&#160;&#160;&#160; &#160;&#160;&#160; s8;<br>
typedef short&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160; <a href="http://hi.baidu.com/rwen2012/blog/item/4163bb034fb6e782d53f7cf8.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/4163bb034fb6e782d53f7cf8.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-30  10:36</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/4163bb034fb6e782d53f7cf8.html</guid>
</item>

<item>
        <title><![CDATA[tmpfile]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/f9554d46801dad036b63e5cf.html]]></link>
        <description><![CDATA[
		
		ngx_fd_t<br>
ngx_open_tempfile(u_char *name, ngx_uint_t persistent, ngx_uint_t access)<br>
{<br>
ngx_fd_t&#160; fd;<br>
<br>
fd = open((const char *) name, O_CREAT|O_EXCL|O_RDWR,<br>
access ? access : 0600);<br>
<br>
if (fd != -1 &amp;&amp; !persistent) {<br>
unlink((const char *) name);<br>
}<br>
<br>
return fd;<br>
}<br> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/f9554d46801dad036b63e5cf.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-18  09:54</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/f9554d46801dad036b63e5cf.html</guid>
</item>

<item>
        <title><![CDATA[base64 decode/encode from nginx]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/7a429600495ddf1b738b65c1.html]]></link>
        <description><![CDATA[
		
		<br>
void<br>
ngx_encode_base64(ngx_str_t *dst, ngx_str_t *src)<br>
{<br>
u_char&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; *d, *s;<br>
size_t&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; len;<br>
static u_char&#160;&#160; basis64[] =<br>
&quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;<br>
<br>
len = src-&gt;len;<br>
s = src-&gt;data;<br>
d = dst-&gt;data;<br>
<br>
while (len &gt; 2) {<br>
*d++ = basis64[(s[0] &gt;&gt; 2) &amp; 0x3f];<br>
*d++ = basi <a href="http://hi.baidu.com/rwen2012/blog/item/7a429600495ddf1b738b65c1.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/7a429600495ddf1b738b65c1.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-18  09:46</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/7a429600495ddf1b738b65c1.html</guid>
</item>

<item>
        <title><![CDATA[纪念Richard Stevens逝世10周年]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/8eadc0447062eb45500ffe27.html]]></link>
        <description><![CDATA[
		
		理查德·史蒂文斯（William Richard (Rich) Stevens，1951年2月5日－1999年9月1日），美国计算机科学家，是众多的畅销UNIX、TCP/IP书籍的作者。 

著作 

* 1990年 - “UNIX Network Programming” - ISBN 0-139-49876-1 中文名：《UNIX网络编程》 
* 1992年 - Advanced Programming in the UNIX Environment - ISBN 0-201-56317-7 中文名：《UNIX环境高级编程》 
* 1994年 - TCP/IP Illustrated, Volume 1: The Protocols - ISBN 0-201-63346-9 中文名：《TCP/IP详解 卷1：协议》 
* 1995年 - TCP/IP Illustrated, Volume 2: The Imple <a href="http://hi.baidu.com/rwen2012/blog/item/8eadc0447062eb45500ffe27.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/%CB%E6%B1%CA">随笔</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/8eadc0447062eb45500ffe27.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-05  10:06</pubDate>
        <category><![CDATA[随笔]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/8eadc0447062eb45500ffe27.html</guid>
</item>

<item>
        <title><![CDATA[读配置文件]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/74ba2c6091676a4debf8f899.html]]></link>
        <description><![CDATA[
		
		/* readconfig.c by R.wen(rwen2012@gmail.com), 20090903 */<br>
<br>
/* read file like this: (net-eth0.txt)<br>
<br>
MODE&#160; =&#160; static<br>
IPADDR=192.168.9.159<br>
NETMASK=255.255.255.0<br>
GATEWAY=192.168.9.1<br>
<br>
*/<br>
<br>
#include &lt;stdio.h&gt; <br>
#include &lt;fcntl.h&gt; <br>
#include &lt;sys/stat.h&gt; <br>
#include &lt;sys/types.h&gt;<br>
#include &lt;unistd.h&gt;<br>
#include &lt;stdlib.h&gt;<br>
#include &lt;string.h&gt;<br>
<br>
<br>
int readline(int fd, char *buf)<br> <a href="http://hi.baidu.com/rwen2012/blog/item/74ba2c6091676a4debf8f899.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/74ba2c6091676a4debf8f899.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-03  17:20</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/74ba2c6091676a4debf8f899.html</guid>
</item>

<item>
        <title><![CDATA[UDP编程中的connect(zt)]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/523c4bf4f63327e67709d723.html]]></link>
        <description><![CDATA[
		
		标准的udp客户端开了套接口后，一般使用sendto和recvfrom函数来发数据，最近看到ntpclient的代码里面是使用send函数直接法的，就分析了一下，原来udp发送数据有两种方法供大家选用的，顺便把udp的connect用法也就解释清楚了。<br>
方法一： <br>
socket-----&gt;sendto()或recvfrom() <br>
方法二： <br>
socket-----&gt;connect()-----&gt;send()或recv()<br>
<br>
首先从这里看出udp中也是可以使用connect的，但是这两种方法到底有什么区别呢？首先把这四个发送函数的定义列出来： <br>
<font color="#009900">int send(int s,</font> <a href="http://hi.baidu.com/rwen2012/blog/item/523c4bf4f63327e67709d723.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/Networking">Networking</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/523c4bf4f63327e67709d723.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-03  12:35</pubDate>
        <category><![CDATA[Networking]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/523c4bf4f63327e67709d723.html</guid>
</item>

<item>
        <title><![CDATA[iptoint  && inttoip]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/a781d2cac1304d8fc81768c4.html]]></link>
        <description><![CDATA[
		
		<pre><span ><span class="stx-macro">#include &lt;<a href="http://www.google.com/codesearch/p?hl=zh-CN&amp;sa=N&amp;cd=2&amp;ct=rc#YMpixvTr-Pg&amp;q=file:%28/%7C%5E%29stdio%5C.h$&amp;exact_package=ftp://ftp.mirrorservice.org/sites/ftp.ripe.net/ripe/test-traffic/tracerouteDB.tar&amp;is_navigation=1" class="anav">stdio.h</a>&gt;<br></span></span><span ><span class="stx-macro">#include &lt;</span></span></pre> <a href="http://hi.baidu.com/rwen2012/blog/item/a781d2cac1304d8fc81768c4.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/a781d2cac1304d8fc81768c4.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-02  18:00</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/a781d2cac1304d8fc81768c4.html</guid>
</item>

<item>
        <title><![CDATA[xor  encryption and decryption]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/4c85da16ddf51f58f3de32d3.html]]></link>
        <description><![CDATA[
		
		<pre><span ><span class="stx-comment">/* <span class="KB">Encrypt</span>ion and decryption are symmetric */</span><br></span><span ><span class="stx-macro">#define stream_decrypt stream_<span class="KB">encrypt</span><br></span></span><span ><span class="stx-keyword">static</span> <span class="stx-keyword">void</span> stream_<span class="KB">encrypt</span>(stream_state *self, <span class="stx-keyword">unsigned</span> <span class="stx-keyword">char</span> *block,<br></span><span > </span></pre> <a href="http://hi.baidu.com/rwen2012/blog/item/4c85da16ddf51f58f3de32d3.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/4c85da16ddf51f58f3de32d3.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-13  12:50</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/4c85da16ddf51f58f3de32d3.html</guid>
</item>

<item>
        <title><![CDATA[xor encryption]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/094af41c230c118287d6b6d2.html]]></link>
        <description><![CDATA[
		
		<pre><span class="stx-comment"><span >/**************************************************************<br></span><span class="DD">*     Basic <span class="KB ED">xor</span> <span class="KB">encrypt</span>ion program by spade89 :)              *<br></span><span >*       this code is for everyhuman no copyrights             *<br></span><span >*     feel free to modify or duplicate as much as you want.   *<br></span><span >*                                                      </span></span></pre> <a href="http://hi.baidu.com/rwen2012/blog/item/094af41c230c118287d6b6d2.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/094af41c230c118287d6b6d2.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-13  12:48</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/094af41c230c118287d6b6d2.html</guid>
</item>

<item>
        <title><![CDATA[测试循环展开的优化（ARM）]]></title>
        <link><![CDATA[http://hi.baidu.com/rwen2012/blog/item/2dcfb4de84e72f5d95ee3774.html]]></link>
        <description><![CDATA[
		
		/* test the loop unroling, by R.wen */<br>
/* 循环展开可以避免小循环中，由于循环开销所占的比例过大造成的性能下降*/<br>
<br>
#include &lt;stdio.h&gt;<br>
#include &lt;time.h&gt;<br>
<br>
int checksum(int num)<br>
{<br>
int i;<br>
int sum1=0, sum2=0;<br>
<br>
time_t t1, t2;<br>
<br>
t1 = time(NULL);<br>
for (i=num; i&gt;0; i--)<br>
sum1 += i;<br>
<br>
t2 = time(NULL);<br>
t1 = t2 - t1;<br>
{<br>
for (i=num/4; i&gt;0; i--) {<br>
sum2 += i;<br>
sum2 += i+1;&#160;&#160; &#160;&#160; &#160;<br>
sum2 <a href="http://hi.baidu.com/rwen2012/blog/item/2dcfb4de84e72f5d95ee3774.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/rwen2012/blog/category/c%D3%EF%D1%D4%CA%B5%BC%F9">c语言实践</a>&nbsp;<a href="http://hi.baidu.com/rwen2012/blog/item/2dcfb4de84e72f5d95ee3774.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-09  10:49</pubDate>
        <category><![CDATA[c语言实践]]></category>
        <author><![CDATA[Rwen2012]]></author>
		<guid>http://hi.baidu.com/rwen2012/blog/item/2dcfb4de84e72f5d95ee3774.html</guid>
</item>


</channel>
</rss>