<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[WitSun`s blog]]></title>
<link>http://www.witsun.net/blog/</link>
<description><![CDATA[Never stop smiling,not even when you`re sad,someone might fall in love with your smile.]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[WitSun@21cn.com(WitSun)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>WitSun`s blog</title> 
	<url>http://www.witsun.net/blog/images/logos.gif</url> 
	<link>http://www.witsun.net/blog/</link> 
	<description>WitSun`s blog</description> 
</image>

			<item>
			<link>http://www.witsun.net/blog/default.asp?id=223</link>
			<title><![CDATA[这周六忍不住花了10600大洋买下了X220最高配的机器]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[随笔博客]]></category>
			<pubDate>Sun,20 Nov 2011 22:38:39 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=223</guid>	
		<description><![CDATA[品牌型号<br/>厂商&#160;&#160;&#160;&#160;ThinkPad<br/>型号&#160;&#160;&#160;&#160;X220&nbsp;2NB<br/>处理系统<br/>CPU&#160;&#160;&#160;&#160;i7-2620M(2.7GHz),<br/>二级缓存&#160;&#160;&#160;&#160;6M<br/>主板芯片&#160;&#160;&#160;&#160;英特尔&nbsp;QM67芯片组<br/>系统外频&#160;&#160;&#160;&#160;1333MHz<br/>内存容量(标准/最大)&#160;&#160;&#160;&#160;8GB/8GB<br/>内存槽数(空闲/总数)&#160;&#160;&#160;&#160;2/0<br/>备注&#160;&#160;&#160;&#160;1066MHZ&nbsp;DDR3内存<br/>储存设备<br/>硬盘&#160;&#160;&#160;&#160;160G&nbsp;SSD<br/>光驱&#160;&#160;&#160;&#160;无<br/>显示系统<br/>LCD&#160;&#160;&#160;&#160;12.5寸&nbsp;IPS&nbsp;WXGA&nbsp;1366*768<br/>图形芯片&#160;&#160;&#160;&#160;英特尔&nbsp;HD&nbsp;3000显示芯片<br/>显存容量&#160;&#160;&#160;&#160;共享系统内存（集成）<br/>音效系统<br/>芯片&#160;&#160;&#160;&#160;内置扬声器<br/>通讯设备<br/>调制解调器&#160;&#160;&#160;&#160;无<br/>网卡&#160;&#160;&#160;&#160;10/100/1000&nbsp;LAN<br/>无线网卡&#160;&#160;&#160;&#160;802.11N<br/>蓝牙&#160;&#160;&#160;&#160;有<br/>键盘鼠标<br/>键盘&#160;&#160;&#160;&#160;全尺寸带有掌托的人体工程学键盘<br/>鼠标&#160;&#160;&#160;&#160;带页面滚动指点杆和触模板<br/>主机端口信息<br/>PC卡插槽&#160;&#160;&#160;&#160;1&nbsp;x&nbsp;Express扩展卡插槽<br/>USB&#160;&#160;&#160;&#160;3个USB&nbsp;其中一个3.0标准<br/>IEEE&nbsp;1394&#160;&#160;&#160;&#160;无<br/>指纹识别&#160;&#160;&#160;&#160;有<br/>显示端口&#160;&#160;&#160;&#160;VGA、DisplayPort高清接口<br/>备注&#160;&#160;&#160;&#160;主机内置麦克风、耳麦复合插口、读卡器、720pHD摄像头、<br/>机体<br/>结构&#160;&#160;&#160;&#160;305*206.5*19-34.6&nbsp;mm（(不含电池)<br/>重量&#160;&#160;&#160;&#160;1.44KG<br/>机身材料&#160;&#160;&#160;&#160;超弹性聚碳酸酯(透明钢)<br/>其他<br/>操作系统&#160;&#160;&#160;&#160;无<br/>电池时间&#160;&#160;&#160;&#160;一块6芯电池,4.5小时&nbsp;(视实际使用情况而有所不同)<br/>保修&#160;&#160;&#160;&#160;公司1年保修,按出厂日期起算全球联保3年,电池1年<br/>产地&#160;&#160;&#160;&#160;中国]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=221</link>
			<title><![CDATA[time,gettimeofday,clock_gettime,_ftime]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Tue,11 Oct 2011 20:15:39 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=221</guid>	
		<description><![CDATA[view&nbsp;plain<br/>time()提供了秒级的精确度&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>1、头文件&nbsp;&lt;time.h&gt;&nbsp;&nbsp;<br/>2、函数原型&nbsp;&nbsp;<br/>time_t&nbsp;time(time_t&nbsp;*&nbsp;timer)&nbsp;&nbsp;&nbsp;<br/>函数返回从TC1970-1-1&nbsp;0:0:0开始到现在的秒数&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>用time()函数结合其他函数（如：localtime、gmtime、asctime、ctime）可以获得当前系统时间或是标准时间。&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>#include&nbsp;&lt;time.h&gt;&nbsp;&nbsp;<br/>#include&nbsp;&lt;stdio.h&gt;&nbsp;&nbsp;<br/>int&nbsp;main(void)&nbsp;&nbsp;<br/>{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;time_t&nbsp;t;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;t&nbsp;=&nbsp;time(NULL);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;The&nbsp;number&nbsp;of&nbsp;seconds&nbsp;since&nbsp;January&nbsp;1,&nbsp;1970&nbsp;is&nbsp;%ld&#34;,t);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>#include&nbsp;&lt;stdio.h&gt;&nbsp;&nbsp;<br/>#include&nbsp;&lt;stddef.h&gt;&nbsp;&nbsp;<br/>#include&nbsp;&lt;time.h&gt;&nbsp;&nbsp;<br/>int&nbsp;main(void)&nbsp;&nbsp;<br/>{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;time_t&nbsp;timer;//time_t就是long&nbsp;int&nbsp;类型&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;tm&nbsp;*tblock;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;timer&nbsp;=&nbsp;time(NULL);//这一句也可以改成time(&amp;timer);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;tblock&nbsp;=&nbsp;localtime(&amp;timer);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;Local&nbsp;time&nbsp;is:&nbsp;%s/n&#34;,asctime(tblock));&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;<br/>view&nbsp;plain<br/>gettimeofday()提供了微秒级的精确度&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>1、头文件&nbsp;&lt;time.h&gt;&nbsp;&nbsp;<br/>2、函数原型&nbsp;&nbsp;<br/>int&nbsp;gettimeofday(struct&nbsp;timeval&nbsp;*tv,&nbsp;struct&nbsp;timezone&nbsp;*tz);&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>gettimeofday()会把目前的时间由tv所指的结构返回，当地时区的信息则放到tz所指的结构中(可用NULL)。&nbsp;&nbsp;<br/>参数说明：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;timeval结构定义为:&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timeval&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;tv_sec;&nbsp;/*秒*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;tv_usec;&nbsp;/*微秒*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;timezone&nbsp;结构定义为:&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timezone&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;tz_minuteswest;&nbsp;/*和Greenwich&nbsp;时间差了多少分钟*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;tz_dsttime;&nbsp;/*日光节约时间的状态*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;上述两个结构都定义在/usr/include/sys/time.h。tz_dsttime&nbsp;所代表的状态如下&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_NONE&nbsp;/*不使用*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_USA&nbsp;/*美国*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_AUST&nbsp;/*澳洲*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_WET&nbsp;/*西欧*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_MET&nbsp;/*中欧*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_EET&nbsp;/*东欧*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_CAN&nbsp;/*加拿大*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_GB&nbsp;/*大不列颠*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_RUM&nbsp;/*罗马尼亚*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_TUR&nbsp;/*土耳其*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DST_AUSTALT&nbsp;/*澳洲（1986年以后）*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>返回值:&nbsp;成功则返回0，失败返回-1，错误代码存于errno。附加说明EFAULT指针tv和tz所指的内存空间超出存取权限。&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>#include&lt;stdio.h&gt;&nbsp;&nbsp;<br/>#include&lt;time.h&gt;&nbsp;&nbsp;<br/>int&nbsp;main(void)&nbsp;&nbsp;<br/>{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timeval&nbsp;tv;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timezone&nbsp;tz;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;gettimeofday&nbsp;(&amp;tv&nbsp;,&nbsp;&amp;tz);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(“tv_sec;&nbsp;%d/n”,&nbsp;tv,.tv_sec)&nbsp;;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(“tv_usec;&nbsp;%d/n”,tv.tv_usec);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(“tz_minuteswest;&nbsp;%d/n”,&nbsp;tz.tz_minuteswest);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(“tz_dsttime,&nbsp;%d/n”,tz.tz_dsttime);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;<br/><br/>view&nbsp;plain<br/>clock_gettime(&nbsp;)&nbsp;提供了纳秒级的精确度&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>1、头文件&nbsp;&lt;time.h&gt;&nbsp;&nbsp;<br/>2、编译&amp;链接。在编译链接时需加上&nbsp;-lrt&nbsp;;因为在librt中实现了clock_gettime函数&nbsp;&nbsp;<br/>3、函数原型&nbsp;&nbsp;<br/>int&nbsp;clock_gettime(clockid_t&nbsp;clk_id,&nbsp;struct&nbsp;timespect&nbsp;*tp);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;参数说明：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;clockid_t&nbsp;clk_id&nbsp;用于指定计时时钟的类型，有以下4种：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1&nbsp;0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timespect&nbsp;*tp用来存储当前的时间，其结构如下：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timespec&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t&nbsp;tv_sec;&nbsp;/*&nbsp;seconds&nbsp;*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;tv_nsec;&nbsp;/*&nbsp;nanoseconds&nbsp;*/&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;返回值。0成功，-1失败&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>#include&lt;stdio.h&gt;&nbsp;&nbsp;<br/>#include&lt;time.h&gt;&nbsp;&nbsp;<br/>int&nbsp;main()&nbsp;&nbsp;<br/>{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;timespec&nbsp;ts;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;clock_gettime(CLOCK_REALTIME,&nbsp;&amp;ts);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;CLOCK_REALTIME:&nbsp;%d,&nbsp;%d&#34;,&nbsp;ts.tv_sec,&nbsp;ts.tv_nsec);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;clock_gettime(CLOCK_MONOTONIC,&nbsp;&amp;ts);//打印出来的时间跟&nbsp;cat&nbsp;/proc/uptime&nbsp;第一个参数一样&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;CLOCK_MONOTONIC:&nbsp;%d,&nbsp;%d&#34;,&nbsp;ts.tv_sec,&nbsp;ts.tv_nsec);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&nbsp;&amp;ts);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;CLOCK_PROCESS_CPUTIME_ID:&nbsp;%d,&nbsp;%d&#34;,&nbsp;ts.tv_sec,&nbsp;ts.tv_nsec);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;clock_gettime(CLOCK_THREAD_CPUTIME_ID,&nbsp;&amp;ts);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;CLOCK_THREAD_CPUTIME_ID:&nbsp;%d,&nbsp;%d&#34;,&nbsp;ts.tv_sec,&nbsp;ts.tv_nsec);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&#34;/n%d/n&#34;,&nbsp;time(NULL));&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;&nbsp;&nbsp;<br/>}&nbsp;&nbsp;<br/>用gcc&nbsp;test9.c&nbsp;-lrt运行，测试&nbsp;#time&nbsp;./a.out.&nbsp;&nbsp;<br/>/proc/uptime里面的两个数字(可用cat查看)分别表示:&nbsp;&nbsp;&nbsp;<br/>the&nbsp;uptime&nbsp;of&nbsp;the&nbsp;system&nbsp;(seconds),&nbsp;and&nbsp;the&nbsp;amount&nbsp;of&nbsp;time&nbsp;spent&nbsp;in&nbsp;idle&nbsp;process&nbsp;(seconds).&nbsp;&nbsp;&nbsp;<br/>把第一个数读出来，那就是从系统启动至今的时间，单位是秒&nbsp;&nbsp;<br/><br/>view&nbsp;plain<br/>_ftime()提供毫秒级的精确度&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>1、头文件&nbsp;&lt;sys/types.h&gt;&nbsp;and&nbsp;&lt;sys/timeb.h&gt;&nbsp;&nbsp;&nbsp;<br/>2、函数原型&nbsp;&nbsp;<br/>void&nbsp;_ftime(struct&nbsp;_timeb&nbsp;*timeptr);&nbsp;&nbsp;&nbsp;<br/>参数说明：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;_timeb&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;time_t&nbsp;time;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;short&nbsp;millitm;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short&nbsp;timezone;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;short&nbsp;dstflag;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>#include&nbsp;&lt;stdio.h&gt;&nbsp;&nbsp;<br/>#include&nbsp;&lt;sys/timeb.h&gt;&nbsp;&nbsp;<br/>#include&nbsp;&lt;time.h&gt;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>void&nbsp;main(&nbsp;void&nbsp;)&nbsp;&nbsp;<br/>{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;_timeb&nbsp;timebuffer;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*timeline;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;_ftime(&nbsp;&amp;timebuffer&nbsp;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;timeline&nbsp;=&nbsp;ctime(&nbsp;&amp;&nbsp;(&nbsp;timebuffer.time&nbsp;)&nbsp;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;&#34;The&nbsp;time&nbsp;is&nbsp;%.19s.%hu&nbsp;%s&#34;,&nbsp;timeline,&nbsp;timebuffer.millitm,&nbsp;&amp;timeline[20]&nbsp;);&nbsp;&nbsp;<br/>}&nbsp;&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=220</link>
			<title><![CDATA[花了一天时间终于把DirectFB配制好了，Linux的东西就是麻烦呀~]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Sat,08 Oct 2011 20:15:16 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=220</guid>	
		<description><![CDATA[DirectFB&nbsp;README<br/>---------------<br/><br/>&nbsp;&nbsp;&nbsp;DirectFB&nbsp;is&nbsp;a&nbsp;graphics&nbsp;library&nbsp;which&nbsp;was&nbsp;designed&nbsp;with&nbsp;embedded<br/>&nbsp;&nbsp;&nbsp;systems&nbsp;in&nbsp;mind.&nbsp;It&nbsp;offers&nbsp;maximum&nbsp;hardware&nbsp;accelerated&nbsp;performance<br/>&nbsp;&nbsp;&nbsp;at&nbsp;a&nbsp;minimum&nbsp;of&nbsp;resource&nbsp;usage&nbsp;and&nbsp;overhead.&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;Check&nbsp;<a href="http://www.directfb.org/" target="_blank">http://www.directfb.org/</a>&nbsp;for&nbsp;more&nbsp;and&nbsp;up&nbsp;to&nbsp;date&nbsp;infos.<br/><br/><br/>Supported&nbsp;Operating&nbsp;Systems<br/>---------------------------<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;-&nbsp;GNU/Linux<br/><br/>&nbsp;&nbsp;&nbsp;Using&nbsp;SDL&nbsp;(without&nbsp;acceleration&nbsp;support),&nbsp;DirectFB&nbsp;also&nbsp;supports<br/>&nbsp;&nbsp;&nbsp;the&nbsp;following&nbsp;operating&nbsp;systems:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;FreeBSD&nbsp;(last&nbsp;tested:&nbsp;DirectFB&nbsp;0.9.21&nbsp;on&nbsp;FreeBSD&nbsp;5.2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;NetBSD&nbsp;&nbsp;(tested&nbsp;on&nbsp;NetBSD&nbsp;1.6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;OpenBSD&nbsp;(tested&nbsp;on&nbsp;OpenBSD&nbsp;3.2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(If&nbsp;you&nbsp;have&nbsp;problems,&nbsp;try&nbsp;./configure&nbsp;--disable-mmx)<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;Please&nbsp;note&nbsp;that&nbsp;SDL&nbsp;support&nbsp;is&nbsp;experimental&nbsp;and&nbsp;incomplete.&nbsp;It&nbsp;is<br/>&nbsp;&nbsp;&nbsp;intended&nbsp;for&nbsp;developers&nbsp;to&nbsp;allow&nbsp;development&nbsp;of&nbsp;DirectFB&nbsp;applications<br/>&nbsp;&nbsp;&nbsp;in&nbsp;various&nbsp;environments.<br/><br/>&nbsp;&nbsp;&nbsp;Native&nbsp;(non&nbsp;SDL)&nbsp;support&nbsp;for&nbsp;the&nbsp;following&nbsp;operating&nbsp;systems&nbsp;is&nbsp;in&nbsp;progress:<br/><br/>&nbsp;&nbsp;&nbsp;-&nbsp;Mac&nbsp;OS&nbsp;X&nbsp;(tested&nbsp;on&nbsp;Mac&nbsp;OS&nbsp;X&nbsp;10.3.5)<br/><br/>&nbsp;&nbsp;&nbsp;We&nbsp;do&nbsp;not&nbsp;have&nbsp;the&nbsp;resources&nbsp;to&nbsp;ensure&nbsp;that&nbsp;every&nbsp;release&nbsp;of<br/>&nbsp;&nbsp;&nbsp;DirectFB&nbsp;works&nbsp;on&nbsp;all&nbsp;supported&nbsp;platforms.&nbsp;If&nbsp;you&nbsp;are&nbsp;a&nbsp;user&nbsp;of&nbsp;one<br/>&nbsp;&nbsp;&nbsp;of&nbsp;the&nbsp;operating&nbsp;system&nbsp;listed&nbsp;above,&nbsp;and&nbsp;have&nbsp;the&nbsp;time&nbsp;to&nbsp;test&nbsp;the<br/>&nbsp;&nbsp;&nbsp;CVS&nbsp;o&#114;&nbsp;GIT&nbsp;version&nbsp;regularly,&nbsp;your&nbsp;help&nbsp;is&nbsp;greatly&nbsp;appreciated.<br/><br/><br/>Build&nbsp;Requirements<br/>------------------<br/><br/>&nbsp;&nbsp;&nbsp;Mandatory&nbsp;are<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libc<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libpthread<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libdl<br/><br/>&nbsp;&nbsp;&nbsp;For&nbsp;regenerating&nbsp;autofoo&nbsp;(./autogen.sh&nbsp;o&#114;&nbsp;autoreconf)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;autoconf<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;automake<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libtool<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;pkg-config<br/><br/>&nbsp;&nbsp;&nbsp;Optionally,&nbsp;depending&nbsp;on&nbsp;the&nbsp;configuration&nbsp;you&nbsp;want:<br/><br/>&nbsp;&nbsp;&nbsp;FBDev<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Linux&nbsp;kernel&nbsp;2.2.x&nbsp;o&#114;&nbsp;newer&nbsp;with&nbsp;working&nbsp;frame&nbsp;buffer&nbsp;device<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(check&nbsp;/proc/fb)&nbsp;for&nbsp;the&nbsp;fbdev&nbsp;system.<br/><br/>&nbsp;&nbsp;&nbsp;SDL<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libSDL&nbsp;(Simple&nbsp;Direct&nbsp;Media&nbsp;Layer)&nbsp;for&nbsp;the&nbsp;sdl&nbsp;system.<br/><br/>&nbsp;&nbsp;&nbsp;X11<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libX11&nbsp;(X11&nbsp;client&nbsp;library)&nbsp;for&nbsp;the&nbsp;X11&nbsp;system&nbsp;(libx11-dev&nbsp;and&nbsp;libxext-dev&nbsp;packages).<br/><br/>&nbsp;&nbsp;&nbsp;The&nbsp;following&nbsp;libraries&nbsp;are&nbsp;optional,&nbsp;but&nbsp;important&nbsp;(Debian&nbsp;package&nbsp;names):<br/><br/>&nbsp;&nbsp;&nbsp;Fonts<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libfreetype6-dev&nbsp;for&nbsp;TrueType&nbsp;and&nbsp;other&nbsp;fonts<br/><br/>&nbsp;&nbsp;&nbsp;Images<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libjpeg-dev&nbsp;for&nbsp;Joint&nbsp;Picture&nbsp;Expert&nbsp;Group&nbsp;images<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;libpng-dev&nbsp;for&nbsp;Portable&nbsp;Network&nbsp;Graphics<br/><br/>&nbsp;&nbsp;&nbsp;Extra<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;zlib1g-dev&nbsp;for&nbsp;compressed&nbsp;screenshot&nbsp;support&nbsp;(also&nbsp;needed&nbsp;by&nbsp;libpng)<br/><br/>&nbsp;&nbsp;&nbsp;The&nbsp;multi&nbsp;application&nbsp;core&nbsp;also&nbsp;requires&nbsp;&lt;linux/fusion.h&gt;,&nbsp;see&nbsp;the<br/>&nbsp;&nbsp;&nbsp;section&nbsp;&#34;Running&nbsp;multiple&nbsp;DirectFB&nbsp;applications&#34;&nbsp;for&nbsp;more&nbsp;details.<br/><br/>&nbsp;&nbsp;&nbsp;The&nbsp;build&nbsp;of&nbsp;the&nbsp;image&nbsp;and&nbsp;font&nbsp;providers&nbsp;can&nbsp;be&nbsp;disabled&nbsp;but&nbsp;we<br/>&nbsp;&nbsp;&nbsp;strongly&nbsp;suggest&nbsp;that&nbsp;you&nbsp;don&#39;t&nbsp;do&nbsp;this&nbsp;since&nbsp;the&nbsp;code&nbsp;examples&nbsp;and<br/>&nbsp;&nbsp;&nbsp;a&nbsp;lot&nbsp;of&nbsp;DirectFB&nbsp;applications&nbsp;depend&nbsp;on&nbsp;the&nbsp;functionality&nbsp;provided<br/>&nbsp;&nbsp;&nbsp;by&nbsp;them.<br/><br/>&nbsp;&nbsp;&nbsp;The&nbsp;libmpeg3&nbsp;video&nbsp;provider&nbsp;requires&nbsp;the&nbsp;libmpeg3&nbsp;library&nbsp;which&nbsp;is<br/>&nbsp;&nbsp;&nbsp;not&nbsp;commonly&nbsp;installed.&nbsp;We&nbsp;provide&nbsp;this&nbsp;package&nbsp;on&nbsp;our&nbsp;web-site&nbsp;at<br/>&nbsp;&nbsp;&nbsp;<a href="http://www.directfb.org/" target="_blank">http://www.directfb.org/</a>download/contrib/.<br/><br/>&nbsp;&nbsp;&nbsp;The&nbsp;avifile&nbsp;and&nbsp;flash&nbsp;video&nbsp;providers&nbsp;that&nbsp;used&nbsp;to&nbsp;be&nbsp;shipped&nbsp;with<br/>&nbsp;&nbsp;&nbsp;DirectFB&nbsp;have&nbsp;been&nbsp;moved&nbsp;to&nbsp;the&nbsp;DirectFB-extra&nbsp;package.<br/><br/>&nbsp;&nbsp;&nbsp;We&nbsp;suggest&nbsp;you&nbsp;also&nbsp;install&nbsp;pkg-config&nbsp;available&nbsp;from<br/>&nbsp;&nbsp;&nbsp;<a href="http://www.freedesktop.org/software/pkgconfig/." target="_blank">http://www.freedesktop.org/software/pkgconfig/.</a>&nbsp;It&nbsp;will&nbsp;help&nbsp;you<br/>&nbsp;&nbsp;&nbsp;to&nbsp;compile&nbsp;applications&nbsp;based&nbsp;on&nbsp;DirectFB.<br/><br/><br/>Usage&nbsp;Requirements<br/>------------------<br/><br/>&nbsp;&nbsp;&nbsp;Depending&nbsp;on&nbsp;the&nbsp;DirectFB&nbsp;application&nbsp;you&nbsp;want&nbsp;to&nbsp;run,&nbsp;you&nbsp;need&nbsp;some<br/>&nbsp;&nbsp;&nbsp;o&#114;&nbsp;all&nbsp;of&nbsp;these:<br/><br/>&nbsp;&nbsp;&nbsp;-&nbsp;A&nbsp;working&nbsp;frame&nbsp;buffer&nbsp;device&nbsp;(check&nbsp;the&nbsp;output&nbsp;of&nbsp;&#39;fbset&nbsp;-i&#39;).<br/>&nbsp;&nbsp;&nbsp;-&nbsp;A&nbsp;keyboard&nbsp;(if&nbsp;it&nbsp;works&nbsp;on&nbsp;the&nbsp;console,&nbsp;everything&nbsp;should&nbsp;be&nbsp;fine).<br/>&nbsp;&nbsp;&nbsp;-&nbsp;A&nbsp;PS/2&nbsp;o&#114;&nbsp;serial&nbsp;mouse&nbsp;for&nbsp;windowing.&nbsp;USB&nbsp;and&nbsp;ADB&nbsp;mice&nbsp;do&nbsp;also&nbsp;work<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;via&nbsp;PS/2&nbsp;emulation.<br/><br/>&nbsp;&nbsp;&nbsp;Using&nbsp;the&nbsp;single&nbsp;application&nbsp;core&nbsp;you&nbsp;always&nbsp;need&nbsp;access&nbsp;to&nbsp;/dev/tty0,<br/>&nbsp;&nbsp;&nbsp;/dev/fb0&nbsp;and&nbsp;the&nbsp;mouse&nbsp;device&nbsp;(/dev/psaux,&nbsp;/dev/mouse).<br/>&nbsp;&nbsp;&nbsp;You&nbsp;can&nbsp;either&nbsp;run&nbsp;all&nbsp;DirectFB&nbsp;applications&nbsp;as&nbsp;root&nbsp;o&#114;&nbsp;allow&nbsp;users<br/>&nbsp;&nbsp;&nbsp;to&nbsp;access&nbsp;these&nbsp;devices.&nbsp;A&nbsp;reasonable&nbsp;way&nbsp;to&nbsp;do&nbsp;this&nbsp;is&nbsp;to&nbsp;add&nbsp;users<br/>&nbsp;&nbsp;&nbsp;to&nbsp;the&nbsp;group&nbsp;tty&nbsp;(or&nbsp;some&nbsp;other&nbsp;group)&nbsp;and&nbsp;allow&nbsp;this&nbsp;group&nbsp;to&nbsp;read<br/>&nbsp;&nbsp;&nbsp;and&nbsp;write&nbsp;the&nbsp;files&nbsp;in&nbsp;/dev:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crw-rw----&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;29,&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;/dev/fb0<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crw-rw----&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10,&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;/dev/psaux<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crw-r-----&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4,&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;/dev/tty0<br/><br/>&nbsp;&nbsp;&nbsp;If&nbsp;you&nbsp;are&nbsp;using&nbsp;the&nbsp;multi&nbsp;application&nbsp;core,&nbsp;only&nbsp;the&nbsp;master&nbsp;process&nbsp;needs<br/>&nbsp;&nbsp;&nbsp;access&nbsp;to&nbsp;all&nbsp;of&nbsp;these&nbsp;devices.&nbsp;Additional&nbsp;processes&nbsp;(slaves)&nbsp;just&nbsp;need<br/>&nbsp;&nbsp;&nbsp;access&nbsp;to&nbsp;/dev/fb0&nbsp;and:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;crw-rw----&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fusion&nbsp;&nbsp;&nbsp;&nbsp;29,&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;/dev/fusion/0<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;the&nbsp;master&nbsp;cr&#101;ates&nbsp;a&nbsp;shared&nbsp;memory&nbsp;file,&nbsp;probably<br/>&nbsp;&nbsp;&nbsp;in&nbsp;&#39;/dev/shm/fusion.0&#39;.&nbsp;It&#39;s&nbsp;read/writeable&nbsp;for&nbsp;anyone&nbsp;matching<br/>&nbsp;&nbsp;&nbsp;the&nbsp;master&nbsp;process&#39;&nbsp;user&nbsp;o&#114;&nbsp;group.<br/><br/><br/>&nbsp;&nbsp;&nbsp;Some&nbsp;applications&nbsp;from&nbsp;the&nbsp;DirectFB-examples&nbsp;package&nbsp;have&nbsp;additional<br/>&nbsp;&nbsp;&nbsp;requirements:<br/><br/>&nbsp;&nbsp;&nbsp;-&nbsp;A&nbsp;video&nbsp;card&nbsp;supported&nbsp;by&nbsp;video4linux&nbsp;for&nbsp;df_video.<br/>&nbsp;&nbsp;&nbsp;-&nbsp;A&nbsp;joystick&nbsp;for&nbsp;df_joystick.<br/><br/><br/>Running&nbsp;multiple&nbsp;DirectFB&nbsp;applications&nbsp;at&nbsp;the&nbsp;same&nbsp;time<br/>-------------------------------------------------------<br/><br/>&nbsp;&nbsp;&nbsp;With&nbsp;the&nbsp;default&nbsp;build&nbsp;of&nbsp;the&nbsp;DirectFB&nbsp;library,&nbsp;only&nbsp;one&nbsp;DirectFB<br/>&nbsp;&nbsp;&nbsp;application&nbsp;may&nbsp;be&nbsp;running.&nbsp;However&nbsp;you&nbsp;have&nbsp;the&nbsp;option&nbsp;to&nbsp;use&nbsp;the<br/>&nbsp;&nbsp;&nbsp;multi&nbsp;application&nbsp;core&nbsp;of&nbsp;DirectFB&nbsp;which&nbsp;allows&nbsp;multiple&nbsp;DirectFB<br/>&nbsp;&nbsp;&nbsp;applications&nbsp;to&nbsp;run&nbsp;at&nbsp;the&nbsp;same&nbsp;time&nbsp;within&nbsp;a&nbsp;session.<br/><br/>&nbsp;&nbsp;&nbsp;DirectFB&nbsp;applications&nbsp;communicate&nbsp;through&nbsp;a&nbsp;layer&nbsp;we&nbsp;call&nbsp;&#34;Fusion&#34;.<br/>&nbsp;&nbsp;&nbsp;This&nbsp;layer&nbsp;was&nbsp;previously&nbsp;implemented&nbsp;completely&nbsp;in&nbsp;user&nbsp;space&nbsp;using<br/>&nbsp;&nbsp;&nbsp;semaphores&nbsp;and&nbsp;message&nbsp;queues.&nbsp;But&nbsp;since&nbsp;0.9.15&nbsp;the&nbsp;Fusion&nbsp;Kernel<br/>&nbsp;&nbsp;&nbsp;Device&nbsp;is&nbsp;required&nbsp;which&nbsp;implements&nbsp;critical&nbsp;parts&nbsp;of&nbsp;Fusion&nbsp;and&nbsp;thus<br/>&nbsp;&nbsp;&nbsp;lead&nbsp;to&nbsp;better&nbsp;performance&nbsp;and&nbsp;decent&nbsp;stability.&nbsp;To&nbsp;install&nbsp;this&nbsp;kernel<br/>&nbsp;&nbsp;&nbsp;module&nbsp;(only&nbsp;available&nbsp;for&nbsp;Linux&nbsp;yet),&nbsp;find&nbsp;the&nbsp;linux-fusion<br/>&nbsp;&nbsp;&nbsp;module&nbsp;in&nbsp;our&nbsp;CVS&nbsp;o&#114;&nbsp;GIT&nbsp;repository&nbsp;o&#114;&nbsp;on&nbsp;the&nbsp;DirectFB&nbsp;website.<br/>&nbsp;&nbsp;&nbsp;For&nbsp;DirectFB&nbsp;1.4.x&nbsp;releases&nbsp;you&nbsp;should&nbsp;use&nbsp;linux-fusion&nbsp;8.1.1&nbsp;o&#114;&nbsp;newer.<br/><br/>&nbsp;&nbsp;&nbsp;Compile&nbsp;DirectFB&nbsp;with&nbsp;multi-application&nbsp;core&nbsp;enabled:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;./configure&nbsp;--enable-multi<br/><br/>&nbsp;&nbsp;&nbsp;Make&nbsp;sure&nbsp;your&nbsp;Linux&nbsp;kernel&nbsp;supports&nbsp;tmpfs.&nbsp;This&nbsp;is&nbsp;explained&nbsp;in<br/>&nbsp;&nbsp;&nbsp;the&nbsp;kernel&nbsp;sources&nbsp;in&nbsp;Documentation/filesystems/tmpfs.txt.<br/>&nbsp;&nbsp;&nbsp;Mount&nbsp;a&nbsp;tmpfs&nbsp;filesystem&nbsp;as&nbsp;/dev/shm:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mount&nbsp;tmpfs&nbsp;/dev/shm&nbsp;-ttmpfs<br/><br/>&nbsp;&nbsp;&nbsp;Optionally&nbsp;a&nbsp;mount&nbsp;point&nbsp;can&nbsp;be&nbsp;specified&nbsp;via&nbsp;the&nbsp;&#34;tmpfs&#34;&nbsp;option,<br/>&nbsp;&nbsp;&nbsp;see&nbsp;directfbrc(5).&nbsp;The&nbsp;option&nbsp;has&nbsp;to&nbsp;be&nbsp;the&nbsp;same&nbsp;for&nbsp;all&nbsp;processes.<br/><br/>&nbsp;&nbsp;&nbsp;A&nbsp;good&nbsp;way&nbsp;to&nbsp;test&nbsp;the&nbsp;multi-application&nbsp;core&nbsp;is&nbsp;to&nbsp;install&nbsp;the&nbsp;lite<br/>&nbsp;&nbsp;&nbsp;toolkit&nbsp;and&nbsp;DFBTerm,&nbsp;a&nbsp;DirectFB&nbsp;terminal&nbsp;(both&nbsp;available&nbsp;in&nbsp;the<br/>&nbsp;&nbsp;&nbsp;DirectFB&nbsp;CVS/GIT&nbsp;repository).&nbsp;You&nbsp;can&nbsp;then&nbsp;start&nbsp;DirectFB&nbsp;applications<br/>&nbsp;&nbsp;&nbsp;from&nbsp;dfbterm.<br/><br/><br/>Recommendations<br/>---------------<br/><br/>&nbsp;&nbsp;&nbsp;To&nbsp;take&nbsp;full&nbsp;advantage&nbsp;of&nbsp;hardware&nbsp;acceleration,&nbsp;<br/>&nbsp;&nbsp;&nbsp;a&nbsp;Matrox&nbsp;G200/G400/G450/G550&nbsp;graphics&nbsp;card&nbsp;is&nbsp;recommend&nbsp;for&nbsp;this&nbsp;<br/>&nbsp;&nbsp;&nbsp;version&nbsp;of&nbsp;DirectFB.&nbsp;The&nbsp;drivers&nbsp;for&nbsp;ATI128,&nbsp;Voodoo&nbsp;3/4/5/Banshee,<br/>&nbsp;&nbsp;&nbsp;NeoMagic&nbsp;and&nbsp;S3&nbsp;Savage&nbsp;cards&nbsp;included&nbsp;with&nbsp;this&nbsp;release&nbsp;are&nbsp;work&nbsp;in<br/>&nbsp;&nbsp;&nbsp;progress&nbsp;and&nbsp;only&nbsp;yet&nbsp;support&nbsp;a&nbsp;subset&nbsp;of&nbsp;the&nbsp;possible&nbsp;accelerations.<br/><br/><br/>Installation<br/>------------<br/><br/>&nbsp;&nbsp;&nbsp;1)&nbsp;In&nbsp;the&nbsp;DirectFB&nbsp;directory&nbsp;type:<br/><br/>&#160;&#160;&#160;&#160;./configure&nbsp;&lt;options&gt;<br/>&#160;&#160;&#160;&#160;make<br/>&#160;&#160;&#160;&#160;make&nbsp;install&nbsp;(as&nbsp;superuser)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Use&nbsp;&#39;./configure&nbsp;--help&#39;&nbsp;to&nbsp;get&nbsp;a&nbsp;list&nbsp;of&nbsp;possible&nbsp;configure&nbsp;options.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Imported&nbsp;options&nbsp;include:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--enable-multi&nbsp;&nbsp;&nbsp;Enables&nbsp;the&nbsp;Multi&nbsp;Application&nbsp;Core<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--enable-debug&nbsp;&nbsp;&nbsp;Enables&nbsp;many&nbsp;debug&nbsp;messages&nbsp;and&nbsp;assertions<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--enable-trace&nbsp;&nbsp;&nbsp;Enables&nbsp;run&nbsp;time&nbsp;stack&nbsp;trace&nbsp;information<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debugging&nbsp;and&nbsp;especially&nbsp;stack&nbsp;trace&nbsp;support&nbsp;are&nbsp;a&nbsp;performance<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;impact.&nbsp;It&nbsp;may&nbsp;be&nbsp;noticably&nbsp;slower&nbsp;in&nbsp;some&nbsp;areas,&nbsp;e.g.&nbsp;text&nbsp;drawing.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;You&nbsp;may&nbsp;use&nbsp;the&nbsp;options&nbsp;&#34;no-debug&#34;&nbsp;and&nbsp;&#34;no-trace&#34;&nbsp;by&nbsp;default,&nbsp;e.g.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;&#39;&lt;prefix&gt;/etc/directfbrc&#39;,&nbsp;and&nbsp;use&nbsp;&#34;--dfb:debug,trace&#34;&nbsp;on&nbsp;the&nbsp;command<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;if&nbsp;needed.<br/><br/>&nbsp;&nbsp;&nbsp;2)&nbsp;Make&nbsp;sure&nbsp;that&nbsp;&#34;&lt;prefix&gt;/lib&#34;&nbsp;is&nbsp;listed&nbsp;in&nbsp;your&nbsp;/etc/ld.so.conf.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;default&nbsp;prefix&nbsp;is&nbsp;&#34;/usr/local&#34;.&nbsp;After&nbsp;adding&nbsp;it&nbsp;you&nbsp;have&nbsp;to<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;run&nbsp;&#39;ldconfig&#39;&nbsp;as&nbsp;superuser.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alt&#101;rnatively,&nbsp;you&nbsp;can&nbsp;add&nbsp;the&nbsp;path&nbsp;to&nbsp;the&nbsp;environment<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;variable&nbsp;LD_LIBRARY_PATH.&nbsp;This&nbsp;is&nbsp;useful&nbsp;for&nbsp;temporarily<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switching&nbsp;to&nbsp;another&nbsp;installed&nbsp;version.<br/><br/>&nbsp;&nbsp;&nbsp;3)&nbsp;You&nbsp;might&nbsp;want&nbsp;to&nbsp;copy&nbsp;fb.modes&nbsp;to&nbsp;/etc&nbsp;o&#114;&nbsp;merge&nbsp;it&nbsp;with&nbsp;your<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;existing&nbsp;/etc/fb.modes&nbsp;file.&nbsp;The&nbsp;first&nbsp;entry&nbsp;will&nbsp;be&nbsp;used&nbsp;by<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default&nbsp;-&nbsp;copy&nbsp;other&nbsp;entries&nbsp;you&nbsp;may&nbsp;need.<br/><br/>&nbsp;&nbsp;&nbsp;4)&nbsp;If&nbsp;you&nbsp;want&nbsp;to&nbsp;use&nbsp;a&nbsp;serial&nbsp;mouse,&nbsp;cr&#101;ate&nbsp;a&nbsp;link&nbsp;called&nbsp;/dev/mouse<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that&nbsp;points&nbsp;to&nbsp;serial&nbsp;device&nbsp;(e.g.&nbsp;/dev/ttyS0).&nbsp;Then&nbsp;add&nbsp;a&nbsp;line<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;describing&nbsp;your&nbsp;mouse-protocol&nbsp;to&nbsp;/etc/directfbrc&nbsp;o&#114;&nbsp;~/.directfbrc:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#34;mouse-protocol=[ms|ms3|mouseman|mousesystems]&#34;.<br/><br/>&nbsp;&nbsp;&nbsp;5)&nbsp;If&nbsp;you&nbsp;are&nbsp;cross&nbsp;compiling&nbsp;and&nbsp;have&nbsp;installed&nbsp;the&nbsp;required&nbsp;libraries<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;someplace&nbsp;other&nbsp;than&nbsp;/usr/local/lib&nbsp;be&nbsp;sure&nbsp;to&nbsp;add&nbsp;the&nbsp;bin&nbsp;directory<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;those&nbsp;libraries&nbsp;to&nbsp;the&nbsp;front&nbsp;of&nbsp;your&nbsp;&#39;PATH&#39;.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For&nbsp;instance&nbsp;if&nbsp;you&nbsp;configured&nbsp;using:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--prefix=/dfb/usr/local<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;then&nbsp;be&nbsp;sure&nbsp;to<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;export&nbsp;PATH=/dfb/usr/local/bin:$PATH<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;before&nbsp;compiling&nbsp;and&nbsp;installing.<br/><br/><br/>Configuring&nbsp;DirectFB<br/>--------------------<br/><br/>&nbsp;&nbsp;&nbsp;There&nbsp;are&nbsp;lots&nbsp;of&nbsp;things&nbsp;that&nbsp;can&nbsp;be&nbsp;configured.&nbsp;We&nbsp;try&nbsp;to&nbsp;ship&nbsp;DirectFB<br/>&nbsp;&nbsp;&nbsp;with&nbsp;reasonable&nbsp;defaults&nbsp;but&nbsp;you&nbsp;might&nbsp;have&nbsp;to&nbsp;tweak&nbsp;things.&nbsp;There&nbsp;are<br/>&nbsp;&nbsp;&nbsp;several&nbsp;ways&nbsp;to&nbsp;do&nbsp;this.&nbsp;You&nbsp;may&nbsp;edit&nbsp;the&nbsp;system-wide&nbsp;configuration<br/>&nbsp;&nbsp;&nbsp;file&nbsp;&lt;prefix&gt;/etc/directfbrc&nbsp;o&#114;&nbsp;the&nbsp;user-specific&nbsp;$HOME/.directfbrc.<br/>&nbsp;&nbsp;&nbsp;There&#39;s&nbsp;a&nbsp;manual&nbsp;page&nbsp;called&nbsp;directfbrc(5)&nbsp;that&nbsp;documents&nbsp;all&nbsp;the&nbsp;settings.<br/>&nbsp;&nbsp;&nbsp;The&nbsp;same&nbsp;manual&nbsp;page&nbsp;also&nbsp;explains&nbsp;how&nbsp;DirectFB&nbsp;application&nbsp;can&nbsp;be<br/>&nbsp;&nbsp;&nbsp;configured&nbsp;via&nbsp;the&nbsp;command-line.<br/><br/><br/>Configuring&nbsp;the&nbsp;Linux&nbsp;frame&nbsp;buffer&nbsp;device<br/>-----------------------------------------<br/><br/>&nbsp;&nbsp;&nbsp;DirectFB&#39;s&nbsp;prefered&nbsp;way-of-working&nbsp;needs&nbsp;a&nbsp;Linux&nbsp;kernel<br/>&nbsp;&nbsp;&nbsp;with&nbsp;frame&nbsp;buffer&nbsp;support.&nbsp;Check&nbsp;the&nbsp;documentation&nbsp;in&nbsp;the&nbsp;kernel&nbsp;tree<br/>&nbsp;&nbsp;&nbsp;(/usr/src/linux/Documentation/fb/)&nbsp;on&nbsp;how&nbsp;to&nbsp;enable&nbsp;the&nbsp;frame&nbsp;buffer&nbsp;device<br/>&nbsp;&nbsp;&nbsp;for&nbsp;your&nbsp;graphics&nbsp;card.&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;The&nbsp;generic&nbsp;VESA&nbsp;frame&nbsp;buffer&nbsp;device&nbsp;does&nbsp;not&nbsp;support&nbsp;mode&nbsp;switching<br/>&nbsp;&nbsp;&nbsp;and&nbsp;you&nbsp;will&nbsp;not&nbsp;get&nbsp;hardware&nbsp;acceleration.&nbsp;To&nbsp;make&nbsp;DirectFB&nbsp;work&nbsp;with<br/>&nbsp;&nbsp;&nbsp;veasfb,&nbsp;you&nbsp;should&nbsp;add&nbsp;the&nbsp;following&nbsp;lines&nbsp;to&nbsp;/etc/lilo.conf:<br/><br/>&#160;&#160;&#160;&#160;append=&#34;video=vesa:ywrap,mtrr&#34;<br/><br/>&nbsp;&nbsp;&nbsp;&#39;ywrap&#39;&nbsp;enables&nbsp;panning&nbsp;with&nbsp;wraparound.<br/>&nbsp;&nbsp;&nbsp;&#39;mtrr&#39;&nbsp;enables&nbsp;setting&nbsp;caching&nbsp;type&nbsp;for&nbsp;the&nbsp;frame&nbsp;buffer&nbsp;to&nbsp;write-combining.<br/><br/>&#160;&#160;&#160;&#160;vga=791<br/><br/>&nbsp;&nbsp;&nbsp;This&nbsp;sets&nbsp;the&nbsp;mode&nbsp;on&nbsp;startup.&nbsp;791&nbsp;means&nbsp;1024x768@16,&nbsp;788&nbsp;means&nbsp;800x600@16.<br/><br/>&nbsp;&nbsp;&nbsp;All&nbsp;VESA&nbsp;Video&nbsp;Modes:<br/><br/>&nbsp;&nbsp;&nbsp;Bits&nbsp;&nbsp;&nbsp;&nbsp;640x480&nbsp;800x600&nbsp;1024x768&nbsp;1280x1024&nbsp;1600x1200<br/>&nbsp;&nbsp;&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;769&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;771&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;773&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;775&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;796<br/>&nbsp;&nbsp;&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;785&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;788&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;791&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;794&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;798<br/>&nbsp;&nbsp;&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;786&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;789&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;792&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;795&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;799<br/><br/>&nbsp;&nbsp;&nbsp;Other&nbsp;frame&nbsp;buffer&nbsp;devices&nbsp;support&nbsp;mode&nbsp;switching.&nbsp;DirectFB&nbsp;will&nbsp;only&nbsp;<br/>&nbsp;&nbsp;&nbsp;support&nbsp;modes&nbsp;listed&nbsp;in&nbsp;your&nbsp;/etc/fb.modes&nbsp;file.&nbsp;By&nbsp;default&nbsp;the&nbsp;first&nbsp;<br/>&nbsp;&nbsp;&nbsp;entry&nbsp;found&nbsp;is&nbsp;used.<br/><br/>&nbsp;&nbsp;&nbsp;If&nbsp;you&nbsp;have&nbsp;a&nbsp;Matrox&nbsp;card&nbsp;you&nbsp;may&nbsp;want&nbsp;to&nbsp;try&nbsp;the&nbsp;vsync&nbsp;patch&nbsp;found&nbsp;in<br/>&nbsp;&nbsp;&nbsp;the&nbsp;patches&nbsp;directory&nbsp;that&nbsp;enables&nbsp;applications&nbsp;to&nbsp;&#34;idle&nbsp;wait&#34;&nbsp;for&nbsp;the<br/>&nbsp;&nbsp;&nbsp;vertical&nbsp;retrace.<br/><br/><br/>Using&nbsp;the&nbsp;builtin&nbsp;&#34;window&nbsp;manager&#34;<br/>----------------------------------<br/><br/>&nbsp;&nbsp;&nbsp;Since&nbsp;DirectFB&nbsp;lacks&nbsp;a&nbsp;real&nbsp;window&nbsp;manager,&nbsp;we&nbsp;added&nbsp;a&nbsp;hack&nbsp;to&nbsp;the<br/>&nbsp;&nbsp;&nbsp;window&nbsp;stack&nbsp;to&nbsp;allow&nbsp;for&nbsp;basic&nbsp;window&nbsp;management.&nbsp;While&nbsp;pressing<br/>&nbsp;&nbsp;&nbsp;the&nbsp;&lt;Meta&gt;&nbsp;(or&nbsp;Windows)&nbsp;key&nbsp;o&#114;&nbsp;alt&#101;rnatively&nbsp;&lt;Caps-Lock&gt;&nbsp;you&nbsp;can&nbsp;do<br/>&nbsp;&nbsp;&nbsp;the&nbsp;following:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Drag&nbsp;your&nbsp;mouse&nbsp;to&nbsp;move&nbsp;the&nbsp;focused&nbsp;window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Drag&nbsp;and&nbsp;press&nbsp;&lt;Ctrl&gt;&nbsp;to&nbsp;resize&nbsp;the&nbsp;focused&nbsp;window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Drag&nbsp;and&nbsp;press&nbsp;&lt;Alt&gt;&nbsp;to&nbsp;change&nbsp;the&nbsp;opacity&nbsp;of&nbsp;the&nbsp;focused&nbsp;window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;C&nbsp;to&nbsp;close&nbsp;the&nbsp;focused&nbsp;window.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;A&nbsp;to&nbsp;lower&nbsp;the&nbsp;focused&nbsp;window&nbsp;to&nbsp;the&nbsp;bottom.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;X&nbsp;to&nbsp;cycle&nbsp;the&nbsp;focus&nbsp;through&nbsp;the&nbsp;windows.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;S&nbsp;to&nbsp;raise&nbsp;the&nbsp;lowest&nbsp;window&nbsp;to&nbsp;the&nbsp;top.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;P&nbsp;to&nbsp;enable&nbsp;and&nbsp;show&nbsp;the&nbsp;mouse&nbsp;cursor.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;R&nbsp;to&nbsp;rotate&nbsp;the&nbsp;focused&nbsp;window&nbsp;by&nbsp;90&nbsp;degree.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;E&nbsp;to&nbsp;focus&nbsp;the&nbsp;window&nbsp;currently&nbsp;under&nbsp;the&nbsp;mouse&nbsp;cursor,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;useful&nbsp;in&nbsp;conjunction&nbsp;with&nbsp;&#39;X&#39;.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;Escape&nbsp;to&nbsp;return&nbsp;from&nbsp;fullscreen&nbsp;mode&nbsp;to&nbsp;the&nbsp;desktop.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(currently&nbsp;not&nbsp;advisable&nbsp;if&nbsp;the&nbsp;fullscreen&nbsp;app&nbsp;is&nbsp;still&nbsp;flipping)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Press&nbsp;F12&nbsp;to&nbsp;redraw&nbsp;the&nbsp;whole&nbsp;window&nbsp;stack.<br/><br/>&nbsp;&nbsp;&nbsp;You&nbsp;might&nbsp;want&nbsp;to&nbsp;use&nbsp;the&nbsp;&#34;capslock-meta&#34;&nbsp;option&nbsp;(see&nbsp;directfbrc(5))<br/>&nbsp;&nbsp;&nbsp;if&nbsp;you&nbsp;don&#39;t&nbsp;have&nbsp;a&nbsp;&lt;Meta&gt;&nbsp;key.<br/><br/><br/>Documentation<br/>-------------<br/><br/>&nbsp;&nbsp;&nbsp;A&nbsp;complete&nbsp;API&nbsp;reference&nbsp;documentation&nbsp;in&nbsp;HTML&nbsp;format&nbsp;is&nbsp;cr&#101;ated&nbsp;during&nbsp;<br/>&nbsp;&nbsp;&nbsp;the&nbsp;build&nbsp;in&nbsp;the&nbsp;docs&nbsp;directory.&nbsp;You&nbsp;may&nbsp;also&nbsp;access&nbsp;the&nbsp;API&nbsp;reference<br/>&nbsp;&nbsp;&nbsp;as&nbsp;well&nbsp;as&nbsp;a&nbsp;concepts&nbsp;overview,&nbsp;tutorials&nbsp;and&nbsp;the&nbsp;FAQ&nbsp;online&nbsp;at<br/>&nbsp;&nbsp;&nbsp;<a href="http://www.directfb.org/" target="_blank">http://www.directfb.org/</a>documentation/.&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=219</link>
			<title><![CDATA[MYSQL中的LAST_Ins&#101;rt_ID()和MSSQL中的@@IDENTITY]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Sat,27 Aug 2011 15:18:20 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=219</guid>	
		<description><![CDATA[按照应用需要，常常要取得刚刚插入数据库表里的记录的ID值，在MYSQL中可以使用LAST_Ins&#101;rt_ID()函数，在MSSQL中使用&nbsp;@@IDENTITY。挺方便的一个函数。但是，这里需要注意的是，当使用Ins&#101;rt语句插入多条记录的时候，使用LAST_Ins&#101;rt_ID()返&nbsp;回的还是第一条的ID值，而@@IDENTITY返回最后一条。<br/><br/>说明<br/>LAST_Ins&#101;rt_ID&nbsp;是与table无关的，如果向表a插入数据后，再向表b插入数据，LAST_Ins&#101;rt_ID会改变。<br/><br/>一般情况下获取刚插入的数据的id，使用sel&#101;ct&nbsp;max(id)&nbsp;from&nbsp;table&nbsp;是可以的。<br/><br/>但在多线程情况下，就不行了。在多用户交替插入数据的情况下max(id)显然不能用。<br/><br/>这就该使用LAST_Ins&#101;rt_ID了，因为LAST_Ins&#101;rt_ID是基于Connection的，只要每个线程都使用独立的Connection对象，LAST_Ins&#101;rt_ID函数将返回该Connection对AUTO_INCREMENT列最新的ins&#101;rt&nbsp;o&#114;&nbsp;up&#100;ate操作生成的第一个record的ID。这个值不能被其它客户端（Connection）影响，保证了你能够找回自己的&nbsp;ID&nbsp;而不用担心其它客户端的活动，而且不需要加锁。]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=218</link>
			<title><![CDATA[安装vs2005 sp1 错误 1718，文件被数字签名策略拒绝及2755、1719、2908错误]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Wed,29 Dec 2010 13:42:03 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=218</guid>	
		<description><![CDATA[<div class="entry-title">安装vs2005 sp1 出现错误 1718，文件被数字签名策略拒绝及2755、1719、2908错误</div>
<div class="entry-author">由 MoFun .CC, 在 08-6-16 下午3:17</div>
<div class="taglib-tags-summary">标记: error, server pack, vs2005</div>
<div class="entry-body">
<p>　　若你只装VS2005的话，当你打开.Net 2.0 Web Application Project类网站项目，就会提示你：此安装不支持该项目类型，无法打开项目文件。此时没别办法帮你，你只有升级到VS2005 SP1才可。</p>
<p>&nbsp;</p>
<p>　　然而VS2005 SP1 号称世界上最BT的补丁，一是安装时间超长，有的网友的机器居然狂转了一天才装完。二是安装过程总有许多莫名其妙的错，而你此时只要一点&ldquo;确定&rdquo;，所有的一切都又得回到3小时前从头开始。</p>
<p>&nbsp;</p>
<p>　　微软的这个补丁做的是在是世界上最烂的补丁了，下面是我安装过程（我的环境：Win2003 Server+Microsoft Visual Studio 2005 Team Edition）中遇到的一些错误，刻骨铭心的惨痛经历供大家参考。</p>
<p>&nbsp;</p>
<p>　　<strong>安装VS2005 SP1遭遇1718错误</strong> </p>
<p>　　尝试在 Windows Server 2003 或 Windows XP 中安装大型 Windows Installer 程序包或大型 Windows Installer 修补程序包时出现错误消息：&ldquo;<strong>Error 1718. File was rejected by digital signature policy</strong>&rdquo;（<strong>错误 1718。文件被数字签名策略拒绝</strong>），此时在计算机日志中可以看到类似错误信息：&ldquo;<strong><em>由于软件限制策略处理中有错，不允许安装C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ZNW8\</em></strong><wbr></wbr><strong><em>VS80sp1-KB926604-X86-CHS.msp。对象不能被信任。</em></strong>&ldquo;</p>
<p>&nbsp;</p>
<p>　　替代方法<br />　　警告：如果使用注册表编辑器或其他方法错误地修改了注册表，则可能会出现严重问题。这些问题可能需要重新安装操作系统才能解决。Microsoft 不能保证可以解决这些问题。修改注册表需要您自担风险。<br /><br />　　要解决此问题，请在尝试安装程序包之前将 PolicyScope 注册表值更改为 1。为此，请按照下列步骤操作。<br /><br />　　注意：如果将计算机加入到域中，则域策略更新可能会覆盖您对注册表所做的更改。强烈建议在执行以下步骤之前从域中断开计算机。<br />　　<strong>1</strong>.依次单击&ldquo;开始&rdquo;和&ldquo;运行&rdquo;，键入 regedit，然后单击&ldquo;确定&rdquo;。<br />　　<strong>2</strong>.在注册表编辑器中，找到并单击下面的注册表项：<br />　　HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers<br />　　<strong>注意</strong>：在修改此注册表项之前，建议先备份此注册表项。为此，右键单击&ldquo;CodeIdentifiers&rdquo;，然后单击&ldquo;导出&rdquo;。将文件保存到可在计算机上找到此文件的位置中。<br />　　<strong>3</strong>.更改 PolicyScope 的注册表值。为此，请双击&ldquo;PolicyScope&rdquo;，然后将设置从 0 更改为 1。<br />　　<strong>4</strong>.关闭注册表编辑器。<br />　　<strong>5</strong>.依次单击&ldquo;开始&rdquo;、&ldquo;运行&rdquo;，键入 cmd，然后单击&ldquo;确定&rdquo;以打开命令提示符窗口。<br />　　<strong>6</strong>.在命令提示符下，键入以下命令并按 Enter：<strong>net stop msiserver</strong><br />　　如果 Windows Installer 服务当前正在后台运行，则此命令将停止该服务。该服务停止后，请关闭命令提示符窗口，然后转到步骤 7。<br /><br />　　<strong>注意</strong>：如果在命令提示符处收到以下消息，请关闭命令提示符窗口，然后转到步骤 7：<br />　　未启动 Windows Installer 服务<br />　　<strong>7</strong>.收到&ldquo;症状&rdquo;部分所述的错误消息后，请安装要尝试安装的程序包。<br />　　<strong>8</strong>.安装了程序包之后，重复步骤 1 和 2。然后，将 PolicyScope 注册表值更改回 0。<br />　　<strong>9</strong>.如果从域中断开了计算机，请重新加入域，然后重新启动计算机。<br /><br />　　<strong>注意</strong>：如果未从域中断开计算机，则不必重新启动计算机。<br />　　如果以上步骤不能解决该问题（<strong>该死的M$,你还想害我重装不成？</strong>），请按照下列步骤操作：<span style="COLOR: rgb(255,0,0)"><strong>（我推荐你用下面的方法，我就是采用这样的方法解决的，简单快速）</strong></span><br />　　<strong>1</strong>.单击&ldquo;开始&rdquo;，单击&ldquo;运行&rdquo;，键入 control admintools，然后单击&ldquo;确定&rdquo;。<br />　　<strong>2</strong>.双击&ldquo;本地安全策略&rdquo;。<br />　　<strong>3</strong>.单击&ldquo;软件限制策略&rdquo;。（注意：如果未列出软件限制，请右击&ldquo;软件限制策略&rdquo;，然后单击&ldquo;新建策略&rdquo;。）<br />　　<strong>4</strong>.在右侧栏&ldquo;对象类型&rdquo;下，双击&ldquo;强制&rdquo;。<br />　　<strong>5</strong>.单击&ldquo;除本地管理员以外的所有用户&rdquo;，然后单击&ldquo;确定&rdquo;。<br />　　<strong>6</strong>.<strong>重新启动计算机</strong>。(<em><span style="COLOR: rgb(255,0,0)">本条切记，我就是在头的催促下急于求成而在修改后没有重启而依然导致1718错误又从头花费了两三个小时的</span></em>)</p>
<p>&nbsp;</p>
<p>　　<strong>安装VS2005 SP1遭遇2755错误</strong></p>
<p>　　遭遇了很多次的 Visual Studio 2005 的 SP1 安装错误，林林种种的错误搞得人什么心情都没了。</p>
<p>　　今天是为 Visual Studio 2005 Team Suite 安装 SP1，这回可是全新的系统、全新的 VS2005，没有任何添加剂！</p>
<p>　　可是，经过了漫长的等待后还是出现了 2755 的错误。</p>
<p>　　第 N + 1 次使用 google 搜索之后，我决定将遇到的问题记录下来，供自己参考，也希望能给遇到同样问题的你些许帮助。</p>
<p>　　一个叫 z3149441 哥们，在<a href="http://groups.google.com/group/microsoft.public.vstudio.setup/msg/cef03d128d6caf19" target="_blank">他的 Post</a> 中写道：I had the same problem and <font color="#ff0000">there is a hot fix that you need to install before installing the SP1</font>. KB925336 is the knowledge base article.</p>
<p>按照他的说明，我找到了 <a href="http://support.microsoft.com/kb/925336" target="_blank">WindowsServer2003-KB925336-x86-ENU.exe</a> 这个文件，一个早就下载过的文件，躺在我的移动硬盘上。</p>
<p>　　好了，安装 KB925336 并 Reset 系统后，经过超级漫长的等待，SP1 安装成功了！！！</p>
<p>&nbsp;</p>
<p>　　<strong>安装VS2005 SP1遭遇1719错误</strong></p>
<p>　　因为装VS2005 太费时间了，我重启系统后通过远程桌面登录系统又开始安装，结果提示：1719 错误，无法访问Windows Install服务&mdash;&mdash;又失败了！</p>
<p>　　这是因为凡是用到Windows Install服务的安装均不能在安全模式或非直接登录的系统中进行。重启后直接以Administrator身份正常登录本地系统，安装即可。</p>
<p>　　</p>
<p>　　其它，若是Windows Installer服务的原因可参考下面的文章：</p>
<p>　　卸载，重新安装windows installer服务: <br />　　<strong>1 </strong>先用msiexec /unregserver 停掉windows installer服务。 <br />　　<strong>2</strong> 下载InstMsiW.exe，用winrar解压开。进入目录。 <br />　　<strong>3</strong> 右击msi.inf ，点击安装，右击mspatcha.inf ，点击安装。 <br />　　<strong>4</strong> 再用msiexec.exe /regserver 启用服务。 <br /><br />　　不能访问 Windows Installer 服务<br />　　Afly | 2005-11-27<br />　　如果你的系统是 WinXP，在安装 Office2003 时出现了&ldquo;不能访问 Windows Installer 服务，可能是你在安全摸式下运行 Windows 或 Window Installer 没有正确安装&rdquo;错误（实际上是所有使用 Windows Installer 服务安装的 MSI 格式程序均不能正常安装）；在&ldquo;服务&rdquo;里查看&ldquo;Windows Installer &rdquo;服务的状态，一般为停用，当你试图启用此服务，会发现此服务已被系统禁用，或则 Windows Installer 服务已被标记为删除；而当你尝试重新安装 Windows Installer 服务时，系统提示&ldquo;指定的服务已存在&rdquo;&mdash;&mdash;那这篇文章就是你想要的了。</p>
<div>　　解决方法（在 WinXP/Win2000 上通过）：</div>
<div>　　先用记事本编写如下内容，并保存为 installer.reg 格式文件，双击将文件导入注册表；<br />　　运行&ldquo;CMD&rdquo;命令提示符，输入&ldquo;msiexec /regserver&rdquo;并回车；<br />　　无须重新启动，即刻搞掂！<br />　　Windows Registry Editor Version 5.00</div>
<div>　　[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer]<br />　　&quot;ImagePath&quot;=-<br />　　&quot;ImagePath&quot;=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\<br />　　74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,\<br />　　00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,\<br />　　56,00,00,00</div>
<div>　　; ImagePath = %SystemRoot%\System32\msiexec.exe /V</div>
<p>&nbsp;</p>
<p>　　另外，你若遇到<span style="COLOR: rgb(255,0,0)">2908</span>号错误，你就倒大霉了，很多相关和不相关的东西都会不能用了。网上也有一些解决方案，但都不如重装机来的快，我现在就在不得不重装机中，因为我按照微软提供的方案，先卸载VS2005,当我卸载时居然提示无法卸载，多次重试仍这样，无奈重装，惨啊，该死的M$,你与生俱来就是为了折磨你大爷我吗？</p>
<p>&nbsp;</p>
<p>　　微软对<span style="COLOR: rgb(255,0,0)">2908</span>号错误的解决方案（一般情况没有6小时你搞不定）：</p>
<p>　　<strong>A</strong>.删除VS2005<br />　　<strong>B</strong>.删除.NET FRAMEWORK 2.0<br />　　<strong>C</strong>.删除%windir%\WinSxS\ 下的 Policies 文件夹<br />　　<strong>D</strong>.安装.NET Framework 2.0<br />　　<strong>E</strong>.安装VS2005 &amp; SP1</p>
<p>　　详见：<a href="http://forums.msdn.microsoft.com/en-US/vssetup/thread/6a3e71fd-b776-4124-8c96-21bb7e7d6abb/" target="_blank">http://forums.msdn.microsoft.com/en-US/vssetup/thread/6a3e71fd-b776-4124-8c96-21bb7e7d6abb/</a></p>
<p>&nbsp;</p>
<p>　　以上就是我安装过程中遇到的问题，这些都被我碰到了，每次重新安装都花费我3个小时以上，你说我是不是点笨啊！</p>
<p>&nbsp;</p>
<p>　　<strong>以下是安装注意事项：</strong> </p>
<div>　　<strong>1</strong>.安装时间会非常长，如果机器配置不是很高的话需要<span>2个小时以上，一般的话也需要1个小时左右所以请耐心等待。</span></div>
<div>　　<strong>2</strong>.安装前检查你的<span>c盘是否有大于3G的空余空间，因为安装的时候会释放很多临时文件在c盘，如果不能保证大于3g的话可能会发生异常错误，不过我在安装的时候没有占用3G这么恐怖，不过也起码占用了1G多的空间。</span></div>
<div>　　<strong>3</strong>.如果你以前安装过<span>web application project，在安装vs2005 sp1以前请先把他卸载，不然不能成功安装vs2005 sp1</span></div>
<div>　　<strong>4</strong>.VS2005 SP1 的补丁包是把你机器上所有单独装过<span>vs2005的版本的补丁都打上,如果机器上装了Visual Web Developer Express和Visual Studio team sutie,那么他就要运行安装补丁两次.</span></div>
<div>&nbsp;</div>
<div>　　<strong>安装步骤</strong>：<br />　　一．解决数字签名认证的问题<span><br /></span>　　<strong><span>1</span></strong><span>. </span><span>单击&ldquo;开始&rdquo;-&gt;单击&quot;运行&quot;,键入<span>&quot;secpol.msc&quot;, 然后单击&quot;确定&quot;。 </span></span></div>
<div>　　<strong><span>2</span></strong><span>. </span><span>双击&ldquo;本地安全策略&rdquo;。</span></div>
<div>　　<strong><span>3</span></strong><span>. </span><span>单击&rdquo;软件限制策略&ldquo;。</span></div>
<div>　　<span>注意,如果列出<span>,没有软件限制,右键单击&quot;软件限制策略&quot;, 然后单击&quot;新建策略&quot;。 </span></span></div>
<div>　　<strong><span>4</span></strong><span>. </span><span>在对象类型<span>中, 双击&quot;强制&quot;。 </span></span></div>
<div>　　<strong><span>5</span></strong><span>. </span><span>单击&ldquo;除本地管理员以外的所有用户&rdquo;<span>, 并单击&ldquo;确定&rdquo;</span></span><span><span>。</span></span><span><span> </span></span></div>
<div>　　<strong><span>6</span></strong><span>. </span><span>重新启动计算机。</span>　</div>
<div><span><br /></span>　　<span>二．执行批处理文件来安装</span><span><br /></span>　　<span>reg export HKLM\Software\Policies\Microsoft\Windows\Installer installer.reg</span></div>
<div>　　<span>reg add HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f</span></div>
<div>　　<span>net stop msiserver</span></div>
<div>　　<span>start /wait VS80sp1<span style="COLOR: rgb(0,0,0)">-<span style="COLOR: rgb(0,0,0)">KB926604</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">X86</span><span style="COLOR: rgb(0,0,0)">-</span><span style="COLOR: rgb(0,0,0)">CHS.exe<br /></span></span></span>　　<span>reg delete HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /f</span></div>
<div>　　<span>reg import installer.reg</span></div>
<div>　　<span>net stop msiserver</span>　</div>
<p>　　<span>del /q installer.reg 2&gt;nul</span></p>
<p>　　上面的保存为InstallVS2005SP1.bat，再执行该文件以启动安装补丁，并可禁用缓存。</p>
<p>　　</p>
<p>　　本文解决方案参考或复制了以下网址内容，最在重装系统的情况下加以解决：</p>
<p>　　1、<a href="http://hi.baidu.com/janway/blog/item/0aa3af6e86cd22da81cb4a1b.html" target="_blank">http://hi.baidu.com/janway/blog/item/0aa3af6e86cd22da81cb4a1b.html</a></p>
<p>　　2、<a href="http://hi.baidu.com/zhaoqun/blog/item/7c2c6ad0ebdc658ca0ec9c8a.html" target="_blank">http://hi.baidu.com/zhaoqun/blog/item/7c2c6ad0ebdc658ca0ec9c8a.html</a></p>
<p>　　3、<a href="http://www.cnblogs.com/apexchu/archive/2007/05/09/740699.htm" target="_blank">http://www.cnblogs.com/apexchu/archive/2007/05/09/740699.htm</a>l</p>
<p>　　4、<a href="http://blog.csdn.net/vipxiaotian/archive/2007/09/27/1803906.aspx" target="_blank">http://blog.csdn.net/vipxiaotian/archive/2007/09/27/1803906.aspx</a></p>
<p>　　5、<strong>该死的微软</strong>的网站</p>
</div>]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=216</link>
			<title><![CDATA[民间木雕]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[生活琐事]]></category>
			<pubDate>Thu,22 Jul 2010 22:52:52 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=216</guid>	
		<description><![CDATA[好久没来更新日志了，最近开了一间木雕工艺品店——《民间木雕》。<br/><img src="http://www.mjmd.net/shop/image/logo.jpg" border="0" alt=""/><br/>６月２７日租下店面。<br/>７月２日装修完毕。<br/>７月３日开始试营业。<br/>７月８日正式营业。<br/>目前营业情况还算满意。<br/>近期目标：平橫开支，越做越旺！<br/><br/>地址：上海市浦东区永泰路1402号。<br/><img src="http://www.mjmd.net/shop/bookpic/dz.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=215</link>
			<title><![CDATA[最近出越南版本，了解了下越南输入法与unicode的范围，特记录一下，以备后用]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Sat,22 May 2010 18:39:52 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=215</guid>	
		<description><![CDATA[Unicode&nbsp;&amp;&nbsp;Vietnamese&nbsp;Legacy&nbsp;Character&nbsp;Encodings<br/><a href="http://vietunicode.sourceforge.net/charset/" target="_blank">http://vietunicode.sourceforge.net/charset/</a><br/>我整理了下越南的编码范围如下：<br/>0x00C0-0x00C3<br/>0x00C8-0x00CA<br/>0x00CC-0x00CD<br/>0x00D2-0x00D5<br/>0x00D9-0x00DA<br/>0x00DD-0x00E3<br/>0x00E8-0x00EA<br/>0x00EC-0x00ED<br/>0x00F2-0x00F5<br/>0x00F9-0x00FA<br/>0x00FD-0x00FD<br/>0x0102-0x0103<br/>0x0110-0x0111<br/>0x0128-0x0129<br/>0x0168-0x0169<br/>0x01A0-0x01A1<br/>0x01AF-0x01B0<br/>0x1EA0-0x1EF9<br/><br/>关于越南第三方输入法“unikey”，据说越南有百分之八九十的人在用，然而跟踪调试了下，发现它走的不是标准Windows的IME输入法消息流程，而是用了剪贴板（WM_PASTE）消息过来的！<br/>悲剧，有人去写个越南输入法卖给他们说不定能赚大钱！ <img src="http://www.witsun.net/blog/images/smilies/Face_06.gif" border="0" style="margin:0px 0px -2px 0px" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=214</link>
			<title><![CDATA[五一拍的婚纱照]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[生活琐事]]></category>
			<pubDate>Sun,16 May 2010 02:12:20 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=214</guid>	
		<description><![CDATA[<img src="http://www.witsun.net/blog/attachments/month_1005/q20105162827.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/220105162839.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/q20105162850.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/r2010516291.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/m20105162914.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/020105162925.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/k20105162943.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/k20105162100.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/l201051621017.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/n201051621030.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/z201051621044.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/i201051621055.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/x20105162116.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/5201051621118.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/o201051621132.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/z201051621145.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/x201051621159.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/m201051621213.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=213</link>
			<title><![CDATA[今天把车轮变成了风火轮]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[生活琐事]]></category>
			<pubDate>Sun,16 May 2010 01:42:56 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=213</guid>	
		<description><![CDATA[本想用红色的，结果上错了还是蓝色，算了将错就错。<br/><img src="http://www.witsun.net/blog/attachments/month_1005/p20105161428.JPG" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/p201051614219.JPG" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/g201051614229.JPG" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1005/d201051614239.JPG" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.witsun.net/blog/default.asp?id=212</link>
			<title><![CDATA[前阵子去了南汇姑姑那边－新场古镇]]></title>
			<author>WitSun@21cn.com(WitSun)</author>
			<category><![CDATA[生活琐事]]></category>
			<pubDate>Tue,27 Apr 2010 00:02:35 +0800</pubDate>
			<guid>http://www.witsun.net/blog/default.asp?id=212</guid>	
		<description><![CDATA[<img src="http://www.witsun.net/blog/attachments/month_1004/j20104270119.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1004/020104270217.jpg" border="0" alt=""/><br/><img src="http://www.witsun.net/blog/attachments/month_1004/720104270230.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
</channel>
</rss>
