﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-路的尽头-文章分类-开发日记</title><link>http://www.cppblog.com/tangxinfa/category/6293.html</link><description>开发者之旅</description><language>zh-cn</language><lastBuildDate>Fri, 29 Apr 2011 07:56:41 GMT</lastBuildDate><pubDate>Fri, 29 Apr 2011 07:56:41 GMT</pubDate><ttl>60</ttl><item><title>web develop tips</title><link>http://www.cppblog.com/tangxinfa/articles/web_develop_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Tue, 26 Apr 2011 16:17:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/web_develop_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/145105.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/web_develop_tips.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/145105.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/145105.html</trackback:ping><description><![CDATA[１，在ie6下弹出&#8220;网页错误&#8221;对话框，原来是包含的javascript文件的编码与html页面的编码不一致导致的。<br>２，extjs的xml grid在firefox下取不到数据，原来是ajax不允许访问本地文件。<br><br><img src ="http://www.cppblog.com/tangxinfa/aggbug/145105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2011-04-27 00:17 <a href="http://www.cppblog.com/tangxinfa/articles/web_develop_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c/c++ fastcgi tips</title><link>http://www.cppblog.com/tangxinfa/articles/fcgi_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Mon, 17 Jan 2011 16:37:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/fcgi_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/138702.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/fcgi_tips.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/138702.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/138702.html</trackback:ping><description><![CDATA[1，nginx.conf：<br>http {<br>&nbsp; &nbsp; ...... <br>&nbsp;&nbsp; server {<br>&nbsp;&nbsp;&nbsp; ......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; location /fcgi {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_pass 127.0.0.1:8181;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include fastcgi_param;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ......<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; ......<br>}<br><br>2，fcgi程序empty.c<br>#include "fcgi_config.h"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>#include &lt;stdlib.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>#include &lt;unistd.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>#include "fcgi_stdio.h"<br><br>int main ()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; while (FCGI_Accept() &gt;= 0) {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("\r\n"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\r\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //两个空行是必须的，用于分隔http头和体，否则会报50x错误且fast进程退出。<br>&nbsp;&nbsp;&nbsp; } /* while */&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; return 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>}<br><br>３，启动fastcgi<br>spawn-fcgi -a 127.0.0.1 -p 8181 ./empty<br><br>4，在firefox中打开<br>http://localhost/fcgi/<br><br> <img src ="http://www.cppblog.com/tangxinfa/aggbug/138702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2011-01-18 00:37 <a href="http://www.cppblog.com/tangxinfa/articles/fcgi_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>网络库开发感悟</title><link>http://www.cppblog.com/tangxinfa/articles/network_library_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Sat, 15 Jan 2011 08:11:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/network_library_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/138570.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/network_library_tips.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/138570.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/138570.html</trackback:ping><description><![CDATA[1，不要将底层的指针暴露给应用层，如：连接对象，否则该类对象释放时的安全性将成为恶梦。<br>2，网络连接提供close方法的同时也要提供shutdown连接，前者为shutdown+释放资源。<br>3，按socket的api来。<br>4，应用层基于网络层api封装一下，使用智能指针包裹网络连接类，网络连接类提供shutdown方法，但close一定要在析构函数中调用。<br>　　这样一来网络层的fd可在应用层用来map到网络连接类对象，而应用层的网络连接类对象和网络层的连接对象是一一对应的。<br><br><img src ="http://www.cppblog.com/tangxinfa/aggbug/138570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2011-01-15 16:11 <a href="http://www.cppblog.com/tangxinfa/articles/network_library_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux develop tips</title><link>http://www.cppblog.com/tangxinfa/articles/linux_develop_tips.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Tue, 19 Oct 2010 07:16:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/linux_develop_tips.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/130446.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/linux_develop_tips.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/130446.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/130446.html</trackback:ping><description><![CDATA[1,输出errno对应的描述信息建议使用strerror_r, 格式化符号%m,因为它们是线程安全的.<br>2,调用setsockopt设置更大的socket收发缓冲区不一定起效，可通过getsockopt取回验证.<br>　内核参数有限制，必须先放松限制才行：<br>&nbsp;&nbsp; echo 1232896 &gt; /proc/sys/net/core/wmem_max<br>&nbsp;&nbsp; echo 1232896 &gt; /proc/sys/net/core/rmem_max <br>&nbsp;&nbsp; 参考：<a href="http://blog.csdn.net/blade2001/archive/2009/05/12/4171114.aspx">http://blog.csdn.net/blade2001/archive/2009/05/12/4171114.aspx</a><br>3,g++的-lXXX在编译环境上只有静态库时会静态链接该库<br>4,堵塞模式socket上调用recv很可能会返回比要求读取的字节数要少，不要和读磁盘文件混淆了。<br>   <img src ="http://www.cppblog.com/tangxinfa/aggbug/130446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2010-10-19 15:16 <a href="http://www.cppblog.com/tangxinfa/articles/linux_develop_tips.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>epoll资源索引</title><link>http://www.cppblog.com/tangxinfa/articles/epoll.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Wed, 13 Oct 2010 16:53:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/epoll.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/129795.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/epoll.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/129795.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/129795.html</trackback:ping><description><![CDATA[1，有关epoll的实用討論，线程，使用范式：<br />http://discuss.joelonsoftware.com/default.asp?design.4.576194.5<br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/129795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2010-10-14 00:53 <a href="http://www.cppblog.com/tangxinfa/articles/epoll.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>io线程的设计</title><link>http://www.cppblog.com/tangxinfa/articles/124263.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Sun, 22 Aug 2010 02:36:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/124263.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/124263.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/124263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/124263.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/124263.html</trackback:ping><description><![CDATA[io分发主要采用select实现，伪代码如下：<br /><div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">(select(<img src="http://www.cppblog.com/images/dot.gif" />))<br />{<br />    for_each(sockets)<br />    {<br />        </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(readble(socket))<br />        {<br />            handle_read(socket)<br />        }<br />        </span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(writeable(socket))<br />        {<br />            </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(responses.empty())<br />            {<br />                sleep(x)<br />                </span><span style="color: rgb(0, 0, 255);">continue</span><span style="color: rgb(0, 0, 0);">;<br />            }<br />            handle_write(responses.pop());<br />        }<br />    }<br />}</span></div>由于系统设计时是使用双向請求呼响应模型，socket总是可写的，而并不是每个socket都有相应数据可写，感觉写这一部分相应低效和脏。<br /><br /><br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/124263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2010-08-22 10:36 <a href="http://www.cppblog.com/tangxinfa/articles/124263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>选择开源CMS系统</title><link>http://www.cppblog.com/tangxinfa/articles/about_silverstripe.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Fri, 29 Jan 2010 15:49:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/about_silverstripe.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/106766.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/about_silverstripe.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/106766.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/106766.html</trackback:ping><description><![CDATA[有过使用silverstripe建事业单位网站的经历，感觉它最大的不足是：<br />　　用户权限系统不可用，开发自已的后台功能模块很困难。<br />当然silverstripe后台在对外发布的页面的设计很方便，后台布局很好，操作很流畅。<br /><br /><br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/106766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2010-01-29 23:49 <a href="http://www.cppblog.com/tangxinfa/articles/about_silverstripe.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hello Bug!</title><link>http://www.cppblog.com/tangxinfa/articles/100174.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Wed, 04 Nov 2009 17:37:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/100174.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/100174.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/100174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/100174.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/100174.html</trackback:ping><description><![CDATA[１，最近给03年写的一个仓库管理系统做了升级，客户反映了一个BUG，统计栏数据偶尔不对（统计数据来自表格最后一行），问题出在Access数据库中依次插入记录时记录的顺序是无法控制的，因此给它加了个自动递增的ID字段，显示时加个ORDER BY ID，搞定。<img src ="http://www.cppblog.com/tangxinfa/aggbug/100174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2009-11-05 01:37 <a href="http://www.cppblog.com/tangxinfa/articles/100174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我答不上来的面试题记录</title><link>http://www.cppblog.com/tangxinfa/articles/89010.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Wed, 01 Jul 2009 09:48:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/89010.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/89010.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/89010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/89010.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/89010.html</trackback:ping><description><![CDATA[1，判断两个浮点数是否相等。<br />#define ISZERO(x, e) (((x) &gt;= -(e)) &amp;&amp; ((x) &lt;= (e)))<br />cout &lt;&lt; boolalpha &lt;&lt; (ISZERO(float1 - float2, 0.0001) ? true : false) &lt;&lt; endl;<br />2，求某个无符号整数是否为2的整数次幂，要求高效。<br />((value &amp; (value - 1)) ? false : true<br />3，求两个无符号整数的最大公约数，要求高效。<br />#include&lt;stdio.h&gt;<br />int main()<br />{<br />int a,b,num1,num2,temp;<br />printf("Input a &amp; b:");<br />scanf("%d%d",&amp;num1,&amp;num2);<br />if(num1&gt;num2) /*找出两个数中的较大值*/<br />{<br />temp=num1; num1=num2; num2=temp; /*交换两个整数*/<br />}<br />a=num1; b=num2;<br />while(b!=0) /*采用辗转相除法求最大公约数*/<br />{<br />temp=a%b;<br />a=b;<br />b=temp;<br />}<br />printf("The GCD of %d and %d is: %d\n",num1,num2,a); /*输出最大公约数*/<br />printf("The LCM of them is: %d\n",num1*num2/a); /*输出最小公倍数*/<br />}<br /><img src ="http://www.cppblog.com/tangxinfa/aggbug/89010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2009-07-01 17:48 <a href="http://www.cppblog.com/tangxinfa/articles/89010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>曾不知道的VC常识</title><link>http://www.cppblog.com/tangxinfa/articles/73792.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Sat, 14 Feb 2009 07:22:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/73792.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/73792.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/73792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/73792.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/73792.html</trackback:ping><description><![CDATA[1，原来可以只针对某些源文件设置如何使用预编译头文件。<br>&nbsp;&nbsp; 强迫项目不使用预编译头文件和在一些编译器通用的源程序中加入#include "stdafx.h"我都做过，现在看来真是够傻的。<br><br><img src ="http://www.cppblog.com/tangxinfa/aggbug/73792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2009-02-14 15:22 <a href="http://www.cppblog.com/tangxinfa/articles/73792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>运行openssl例子程序出现no OPENSSL_Applink错误的解决办法</title><link>http://www.cppblog.com/tangxinfa/articles/56914.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Wed, 23 Jul 2008 01:31:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/56914.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/56914.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/56914.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/56914.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/56914.html</trackback:ping><description><![CDATA[最近下下来openssl-0.9.8h, 然后尝试编译运行相关例子, 结果运行时出错:<br>OPENSSL_Uplink(100E8010,07): no OPENSSL_Applink<br>解决办法是确保openssl的初始化函数(SSL_library_init, OpenSSL_add_ssl_algorithms, SSLeay_add_ssl_algorithms之一)要先于其它所有openssl函数进行调用.<br><br><img src ="http://www.cppblog.com/tangxinfa/aggbug/56914.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2008-07-23 09:31 <a href="http://www.cppblog.com/tangxinfa/articles/56914.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在linux下踢出用户</title><link>http://www.cppblog.com/tangxinfa/articles/44383.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Thu, 13 Mar 2008 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/44383.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/44383.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/44383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/44383.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/44383.html</trackback:ping><description><![CDATA[远程登录linux系统后，因为网络不稳定意外断开了连接，但重新登录上去后，发现之前的登录还在，运行的程序也还在跑却无法再控制，因此需要踢出上次登录的tty，在文章<a href="http://www.cyberciti.biz/tips/howto-linux-kill-and-logout-users.html">Howto: Linux kill and logout users</a>找到了方法：<br>先用&#8220;who &#8221;命令查出对应的tty名称，再执行&#8220;skill -KILL tty名称&#8221;就成了。<br>不过不知道有没有办法重新以意外断开的tty登录，这样以前的程序还能够正常使用。<br> <img src ="http://www.cppblog.com/tangxinfa/aggbug/44383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2008-03-13 16:53 <a href="http://www.cppblog.com/tangxinfa/articles/44383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开源的网络管理系统SellaNMS的安装时的注意事项</title><link>http://www.cppblog.com/tangxinfa/articles/43893.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Fri, 07 Mar 2008 08:22:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/43893.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/43893.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/43893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/43893.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/43893.html</trackback:ping><description><![CDATA[　　本文针对的是SellaNMS-2.0.1。<br>　　根据说明该系统具体网络设备监视和发现功能，吸引我的是它说明中具备的获取网络拓扑功能。<br>　　1，mysql、apache、php该选什么版本？<br>　　安装SellaNMS-2.0.1无法与php5协同工作，只能选php4的，php4又导致配套的mysql及apache也不能安装过高版本（如：&gt;=apache2，&gt;=mysql4.3）。经过无数次各种版本的安装尝试，最终锁定在以下版本：<br>mysql-4.0.26，apache_1.3.41, php-4.1.0。<br>　　2, 运行过程中出现mysql.so中没有"compress"之类的错误.<br>&nbsp;&nbsp;&nbsp; 可以试着在libdbi-drivers-0.8.3-1的Makefile中的MYSQL_LIBS后添加 -lz<br>另外在configure libdbi-drivers-0.8.3-1记得指定 --with-mysql。<br>&nbsp;&nbsp;&nbsp; 3，make install到最后会安装数据库，这步通常可以顺利完成的，但前提是你给你的mysql root用户设置了密码，如果未设置则脚本总是提示你输入密码，你其实也可以修改config-sella_nms.sh，设置password的默认值为空，不过这会导致当询问密码时你要重复确认几次。<br>&nbsp;&nbsp;&nbsp; 4，config.php打开了debug时在web界面上显示了错误时：<br>　　如果是提示无法打开/tmp/中的临时文件，则要设置apache的User和Group，默认的nobody不行，设置成其它用户　。如果是提示tmp/里面的某个php文件不存在，则修改config.php将$config['cacheDir']的值从'tmp'改为'/tmp'，sella_nms需要设置为默认站点，即要在httpd.conf中指定DocumentRoot为"/usr/local/sella_nms/html"。<br>　　最后要说的是它的topology视图其实没什么看头，只是个表格一样的东西，列出了每个snmp结点连接到的其它结点，非snmp结点就不在此范围内了。<a href="javascript:loadFrame('body', '/tmp/sella_nms-topology.php');" class="mainlink"></a><br> <img src ="http://www.cppblog.com/tangxinfa/aggbug/43893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2008-03-07 16:22 <a href="http://www.cppblog.com/tangxinfa/articles/43893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nagios的调试</title><link>http://www.cppblog.com/tangxinfa/articles/43663.html</link><dc:creator>唐新发</dc:creator><author>唐新发</author><pubDate>Tue, 04 Mar 2008 03:31:00 GMT</pubDate><guid>http://www.cppblog.com/tangxinfa/articles/43663.html</guid><wfw:comment>http://www.cppblog.com/tangxinfa/comments/43663.html</wfw:comment><comments>http://www.cppblog.com/tangxinfa/articles/43663.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tangxinfa/comments/commentRss/43663.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangxinfa/services/trackbacks/43663.html</trackback:ping><description><![CDATA[想用gdb单步调试nagios，结果程序总是在drop_privileges函数调用setgid时，gdb死掉了，这是通过root权限运行gdb才发生的，一时半会也搞不清导致这个问题的确切原因，不过应该是和gdb运行中因在drop_privileges函数调用中丧失了root相关权限有关。应该绕过root权限drop的那部分代码，这样gdb才不会挂，从代码看只能是以非root用户来调试nagios，直接以我的个人帐户调试nagios，结果出现警告：打不开nagios.log文件，从该文件的权限看，需得将我的帐户（txf）加入到nagios组：/usr/sbin/usermod -g nagios txf，不要忘了注销一下用户，再登录，现在可以以我的个人帐户用gdb调试nagios了。<br> <img src ="http://www.cppblog.com/tangxinfa/aggbug/43663.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangxinfa/" target="_blank">唐新发</a> 2008-03-04 11:31 <a href="http://www.cppblog.com/tangxinfa/articles/43663.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>