??xml version="1.0" encoding="utf-8" standalone="yes"?>久久亚洲高清观看,欧美日韩精品久久久免费观看,精品无码久久久久久国产http://www.shnenglu.com/sigepluto/archive/2010/03/26/110622.htmlJakcieJakcieFri, 26 Mar 2010 14:15:00 GMThttp://www.shnenglu.com/sigepluto/archive/2010/03/26/110622.htmlhttp://www.shnenglu.com/sigepluto/comments/110622.htmlhttp://www.shnenglu.com/sigepluto/archive/2010/03/26/110622.html#Feedback4http://www.shnenglu.com/sigepluto/comments/commentRss/110622.htmlhttp://www.shnenglu.com/sigepluto/services/trackbacks/110622.html 

上次说日本v啸警报的时候,E序出错。在解析代码的时候,发现了MFC中的一个Bug?/p>

一。问题的产生?/p>

q个E序Q用来处理日本各U天气预报数据,包括灑֮的预报。如果地震,台风之类的自然灾宛_来,E序会把预报数据q行处理Q生成相应的警报信息Qƈ在电视上面显C滚动的字幕来提C。程序本w,是几q前公司的其他h写的。里面有涉及到文件读写的地方Q有很多地方Q用了MFC中自带的文gdcCStdioFile?/p>

CStdioFileq个文gdc,估计大家都不陌生。这个类的父c,是CFilecRCStdioFilecLw的功能也很单。CStdioFilecL一个成员函数是ReadStringQ函数的定义如下Q?/p>

    virtual LPTSTR ReadString(__out_ecount_z(nMax) LPTSTR lpsz, __in UINT nMax);
    virtual BOOL ReadString(CString& rString);
MSDN定义如下http://msdn.microsoft.com/library/x5t0zfyf(VS.80).aspxQ?pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; height: 118px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px">
BOOL ReadString(CString& rString);
throw( CFileException );
Return Value
A pointer to the buffer containing the text data. NULL if end-of-file was reached without reading any data; or if boolean, FALSE if end-of-file was reached without reading any data.

ReadString函数能直接读取文本中的一行数据到CString中,很方ѝ读到文件结,没有dM数据的时候,q回FALSE。很单的函数Q但恰恰是这个函数有Bug?/p>

E序在处理数据的时候,会生成一些时文Ӟ然后会读取这些时文件中的数据,d操作Q正是用的CStdioFile的ReadString函数。读取流E很单:

while(dFile.ReadString(Str_temp))
{
    doSomething();
}

当时的现象ؓQ读取到最后一行,L直接q回FALSEQ怎么也读不出最后一行来。看了看文g的最后一行,包含2176个字W的数据Q没有换行符。没有Q何异常啊。当时没惛_是MFC的BugQ因Z前有q样那样的毛病,多数是预报数据本w有问题Q所以这ơ也是先分析数据了。分析来分析去,没发现这ơ的数据有什么异常。后来发现如果最后一行的文g不是2176个字W,p正常d来。奇了怪了Q?176也不是什么特D长度啊。实验了几次后,觉的是在不对劌Ӏ莫非是MFC的BugQ?/p>

二。发现问题所?/p>

军_看看MFC的代码再说。做了个单的试E序Q跟到MFC代码里一看,果然是MFC的问题!试代码如下Q?/p>

    CStdioFile  dFile;
    dFile.Open("text.txt",CFile::modeRead);
    CString str;
    while (dFile.ReadString(str) != FALSE )
    {
        printf("%s", str);
    }
    dFile.Close();

试代码很简单,读text.txt文g中的每一行,然后打印出来。还?176个字W就不行。确定了不是数据的问题,是MFC代码本n的Bug?/p>

MFC的ReadString代码如下Q(中文是我加的注释Q?/p>

BOOL CStdioFile::ReadString(CString& rString)
{
    ASSERT_VALID(this);
    rString = &afxChNil;    // empty string without deallocating
    const int nMaxSize = 128;  //临时字符串的长度
    LPTSTR lpsz = rString.GetBuffer(nMaxSize);  //保存每次d到的字符串到CString?/span>
    LPTSTR lpszResult;  //指向每次d的字W串
    int nLen = 0;
    for (;;)
    {
        lpszResult = _fgetts(lpsz, nMaxSize+1, m_pStream); //d操作
        rString.ReleaseBuffer();
        // handle error/eof case
        if (lpszResult == NULL && !feof(m_pStream))
        {
            clearerr(m_pStream);
            AfxThrowFileException(CFileException::generic, _doserrno,
                m_strFileName);
        }
        // if string is read completely or EOF
        if (lpszResult == NULL ||
            (nLen = lstrlen(lpsz)) < nMaxSize ||
            lpsz[nLen-1] == '\n')
            break;
        nLen = rString.GetLength();
        lpsz = rString.GetBuffer(nMaxSize + nLen) + nLen; //位置后移
    }
    // remove '\n' from end of string if present
    lpsz = rString.GetBuffer(0);
    nLen = rString.GetLength();
    if (nLen != 0 && lpsz[nLen-1] == '\n') // 最后结果中Q去掉回车符
        rString.GetBufferSetLength(nLen-1); 
    return lpszResult != NULL;  // q里是Bug的关键。返回g对!
}

可以看到QReadString的底层,是用fgets来读取文件的。在内部Q每ơ读?28个字W到CString中,然后位置后移Q反复读?28个字W,直到遇到回RW或者文件结束。最后把回RW去掉,q回一个CString。其中,lpszResult也指向每ơ读出的字符丌Ӏ?/p>

q里q出问题所在了Q?176个字W,正好?28?7倍!也就是说Q?font color="#ff0000">只要文g最后一行是128倍数个字W,׃定会q回FALSE?/strong>

Z么会q样呢,因ؓReadString在每ơ读?28个字W的时候,用lpszResult指向d到的字符丌Ӏ如果读满了128个字W,ql读Q如果读到的字符不够128个,那么q束读取?/font>

当一行数据正好ؓ128的倍数Q又没有回RW的时候,会发生什么呢Q比如最后一行数据是128个,那么Q读一?28个字W,会l读下一ơ,但是下一ơ的dQ什么也没有dQlpszResult指向NULLQ最后的q回|是return lpszResult != NULL; 所以返回FALSE?/font>

但之前读到的128个字W,已经在CString里面了?/font>也就是说实际上读取已l成功了Q但q是q回了FALSE。返回g恰当Q?/font>

Bug的描qͼ当文件的最后一行数据,正好?28的倍数个字W的时候,?/font>ReadStringdQ一定会q回FALSE。但实际上读取是成功的,q回的CString中的数据是正的Q(VC6.0中存在这个BugQVS2005中,没有q个BugQ?/font>

q个BugQ只会媄响到最后一行数据。因为如果有换行W的存在QlpszResult׃会ؓNULL?/font>

三。解x?/font>

要解册个问题,也简单,修改一下判断ReadString成功与否的语句:

while (dFile.ReadString(str) != FALSE || str.GetLength() != 0)

在返回FALSE的情况下QCString的长度不?Q就不算dp|。或者这?

if(!dFile.ReadString(str) && str.GetLength() == 0)

在返回FALSEq且CString的长度ؓ0Q则读取失败,否则是d成功?/p>

q个E序Q是用VC6.0做的Q我有看了看VC2005中的代码Q发现这个Bug被修复了Q代码如下:

BOOL CStdioFile::ReadString(CString& rString)
{
    ASSERT_VALID(this);
    rString = _T("");    // empty string without deallocating
    const int nMaxSize = 128;
    LPTSTR lpsz = rString.GetBuffer(nMaxSize);
    LPTSTR lpszResult;
    int nLen = 0;
    for (;;)
    {
        lpszResult = _fgetts(lpsz, nMaxSize+1, m_pStream);
        rString.ReleaseBuffer();
        // handle error/eof case
        if (lpszResult == NULL && !feof(m_pStream))
        {
            Afx_clearerr_s(m_pStream);
            AfxThrowFileException(CFileException::genericException, _doserrno,
                m_strFileName);
        }
        // if string is read completely or EOF
        if (lpszResult == NULL ||
            (nLen = (int)lstrlen(lpsz)) < nMaxSize ||
            lpsz[nLen-1] == '\n')
            break;
        nLen = rString.GetLength();
        lpsz = rString.GetBuffer(nMaxSize + nLen) + nLen;
    }
    // remove '\n' from end of string if present
    lpsz = rString.GetBuffer(0);
    nLen = rString.GetLength();
    if (nLen != 0 && lpsz[nLen-1] == '\n')
        rString.GetBufferSetLength(nLen-1);
    return nLen != 0; //q回值变了!
}

我们看到QVC2005中,d部分的代码与VC6.0中的代码完全一栗不一L地方只是q回值的部分。VC2005的ReadString中,q回gؓ

return nLen != 0;

也就是说Q只要读出的CString的长度不?׃ؓd成功。与我修改后的方法完全一致。就q样向客戯释,然后修改了。悲剧的是,几年前所有程序中所有用ReadString函数的地方,都要q行修改。。?/p>

MFC的这个Bug比较隐蔽Q^怸Ҏ发现Q但一旦遇到特D长度的数据Q就会表现异常。所以,在用VC6.0开发的时候,量避免使用ReadStringQ或者在使用中,多判断一步读取出来的CString长度。避开q个Bug?/p>

Jakcie 2010-03-26 22:15 发表评论
]]>
虚惊一场的啸http://www.shnenglu.com/sigepluto/archive/2010/03/08/109161.htmlJakcieJakcieSun, 07 Mar 2010 18:07:00 GMThttp://www.shnenglu.com/sigepluto/archive/2010/03/08/109161.htmlhttp://www.shnenglu.com/sigepluto/comments/109161.htmlhttp://www.shnenglu.com/sigepluto/archive/2010/03/08/109161.html#Feedback1http://www.shnenglu.com/sigepluto/comments/commentRss/109161.htmlhttp://www.shnenglu.com/sigepluto/services/trackbacks/109161.html2?7日,智利发生8.8U特大地震,1个世U以来最强的地震Q全球都在关注。其中,日本的反应尤其大。日本本w自然灾害特别多。火山,地震Qv啸,以及z水。所以,对这U自然灾宛_然的比较敏感。最主要的原因,在于智利的地震,会媄响到日本Q这是有前R之鉴的?/p>

1960q智利v域发生了9.5U(太恐怖了。。。)地震。引起了啸Q一直穿q整个太qxQ从南美Q一直到东亚。日本,夏威P菲律N?00多hM。所以,q次8.8U地震,如果再来一ơv啸,那可不得了啊。这ơ智利爆发的地震Q引发了剧烈的v啸。如今,啸的巨正在横q太qxQ直奔日本v岸而来。估计到达日本时Q浪高依然可以达?0-20英尺?/p>

日本全国都在紧急动员防范v啸,电视台在电视屏幕一角实时展CZq日本地图,所有专安会遭到啸袭击的地区都被标记出来,如今Q从北v?到冲lI整个日本东v岸几乎都变成了一片红艌Ӏ屏q上方则在滚动播出沿各地发布的遉K通知Q例如,青森县已l有一万九千多戯要求dq入公用遉K?施。日本全国到现在为止已有40万hd家园。整个流E顺畅,井然有序。这一切,一斚w反映了日本在自然灑֮面前的准备工作,另一斚w也反映了日本?间的恐惧?/p>

q播员在不断在播报各地vq面的增高情况,镜头不时切换到沿岸各圎ͼ报道当地状况和抢险准备的情况Q很多沿公路如东名高速公路已l关闭,h公园停止营业Q船舶纷U入避难\Uѝ经常有dx断播韛_的播报,紧急通报某地^面出现异常增高。{眼间有了一U陷入某场战争的感觉?/p>

发个图,看的比较清楚。整个日本靠太^z的一边,全部是v啸警报?/p>

公司做的目Q正好是l各个电视台做的天气预报目Q地震台风v啸的预报Q也包含在内。关键时刻,日本电视台打电话_预报图显C的有误Q只能看到大阪的高Q其他地Ҏ有浪高。导致只能显C部分的警报图。东京电视台也打电话说电视上滚动昄的警报文字,用我们的E序处理不了Q显C出不来。马上ؕ套了Q当天公司几个h都通宵在处理。最后强制显C全国的警报图?/p>

最后发玎ͼ日本电视台预报图昄有误Q其实是正确的,本来其他地方没有浪高。ؓ什么呢Q因为根本就没那么大的浪Q?/p>

日本气象厅在3??0?5分全面解除太qx沿岸啸警报?
气象厅负责地震v啸检的N在记者会见中谢罪Uͼ“对于啸预测大大过了实际情况,以及警报旉q长表示歉意?#8221;

 

Z么这ơ的地震Q没有引起很大的啸呢?

智利此次地震所引发的v怹h很强的方向性,英国威尔士大学新港学院(University of Wales, NewportQ的Simon Haslett ?#8220;q回的v啔R常有方向性,而不是那U均匀向四周传播的‘往池塘里扔矛_’似的波浪”。他表示震中最q的岸Q以及胡安费南h岛QJuan Fernandez IslandsQv啔R常强Q但是其他方向的啸能量和高度迅速减退?

而且Q地震震源的相对深度?5公里—可能也减小了v床的上升Q而正是v床的上升排挤了v水。英国u敦大学学院Bill McGuire表示“相比?004q的印度z地震,智利地震要更深,释放到地表的能量也更?#8221;?

虚惊一场啊?

至于东京电视台的预报文字处理不出来,l过我一步步DebugQ最后发玎ͼ是MFC的一个Bug造成的!气死我了。导致所有代码涉及这个Bug的地斚w要修攏V下日志,详细说说q个Bug?/p>

Jakcie 2010-03-08 02:07 发表评论
]]>
快速扩展文件大?/title><link>http://www.shnenglu.com/sigepluto/archive/2010/03/03/108814.html</link><dc:creator>Jakcie</dc:creator><author>Jakcie</author><pubDate>Wed, 03 Mar 2010 09:57:00 GMT</pubDate><guid>http://www.shnenglu.com/sigepluto/archive/2010/03/03/108814.html</guid><wfw:comment>http://www.shnenglu.com/sigepluto/comments/108814.html</wfw:comment><comments>http://www.shnenglu.com/sigepluto/archive/2010/03/03/108814.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sigepluto/comments/commentRss/108814.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sigepluto/services/trackbacks/108814.html</trackback:ping><description><![CDATA[     摘要: 在实际的开发过E中Q我们可能需要在文g生成时就立即文件更改ؓ指定的大,以便于后l简化对文g的ƈ发操作,q一点在各类的下载工具中有很好的体现?<br>具体Ҏ有:lseek或?truncateQ在Windows中,可以选择 _lseek 或?SetEndOfFile?nbsp; <a href='http://www.shnenglu.com/sigepluto/archive/2010/03/03/108814.html'>阅读全文</a><img src ="http://www.shnenglu.com/sigepluto/aggbug/108814.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sigepluto/" target="_blank">Jakcie</a> 2010-03-03 17:57 <a href="http://www.shnenglu.com/sigepluto/archive/2010/03/03/108814.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux中的旉http://www.shnenglu.com/sigepluto/archive/2009/11/25/101927.htmlJakcieJakcieWed, 25 Nov 2009 12:27:00 GMThttp://www.shnenglu.com/sigepluto/archive/2009/11/25/101927.htmlhttp://www.shnenglu.com/sigepluto/comments/101927.htmlhttp://www.shnenglu.com/sigepluto/archive/2009/11/25/101927.html#Feedback0http://www.shnenglu.com/sigepluto/comments/commentRss/101927.htmlhttp://www.shnenglu.com/sigepluto/services/trackbacks/101927.html    在Windwos中,pȝ旉的设|很单,界面操作Q通俗易懂。而且讄后,重启Q关机都没关pR系l时间会自动保存在Bios的时钟里面,启动计算机的时候,pȝ会自动在Bios里面取硬件时_以保证时间的不间断?/p>

    但在Linux下,默认情况下,pȝ旉和硬件时_q不会自动同步。在Linuxq行q程中,pȝ旉和硬件时间以异步的方式运行,互不q扰。硬件时间的q行Q是靠Bios甉|来维持,而系l时_是用CPU tick来维持的?/p>

    在系l开机的时候,会自动从Bios中取得硬件时_讄为系l时间?/p>

 

一.Linuxpȝ旉的设|?/strong>

    在Linux中设|系l时_可以用date命oQ?/p>

//查看旉

[root@localhost ~]# date
2008q?12?12?星期?14:44:12 CST

//修改旉
[root@localhost ~]# date --set "1/1/09 00:01" <== Q月/?q时:?U)
2009q?01?01?星期?00:01:00 CST

//date 有几U时间格式可接受Q这样也可以讄旉Q?

[root@localhost ~]# date 012501012009.30  <== 月日时分q?U?br>2009q?01?25?星期?01:01:30 CST

 

 ?Linuxg旉的设|?/strong>

    g旉的设|,可以用hwclock或者clock命o。其中,clock和hwclock用法相近Q只用一个就 行,只不qclock命o除了支持x86g体系外,q支持Alphag体系?/p>

//查看g旉 可以是用 hwclock Qhwclock --show 或?hwclock -r

[root@localhost ~]# hwclock --show
2008q?2?2?星期?06?2?7U?nbsp; -0.376932 seconds

//讄g旉

[root@localhost ~]# hwclock --set --date="1/25/09 00:00" <== ??q时:?U?br>[root@localhost ~]# hwclock
2009q?1?5?星期?00?0?6U?nbsp; -0.870868 seconds

 

?pȝ旉和硬件时间的同步

    同步pȝ旉和硬件时_可以使用hwclock命o?/p>

//以系l时间ؓ基准Q修改硬件时?/p>

[root@localhost ~]# hwclock --systohc <== sysQ系l时_toQ写刎ͼhcQHard ClockQ?br>[root@localhost ~]# hwclock -w

//以硬件时间ؓ基准Q修改系l时?/p>

[root@localhost ~]# hwclock --hctosys
[root@localhost ~]# hwclock -s

 

?不同机器之间的时间同?/strong>

    Z避免L旉因ؓ长期q作下所D的时间偏差,q行旉同步(synchronize)的工作是非常必要的。Linuxpȝ下,一般用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务器和ntp客户机。在|络中,推荐使用像DNS服务器一样分层的旉服务器来同步旉?

    同步旉Q可以用ntpdate命oQ也可以使用ntpd服务?

    使用ntpdate比较单。格式如下:

[root@linux ~]# ntpdate [-nv] [NTP IP/hostname]
[root@linux ~]# ntpdate 192.168.0.2
[root@linux ~]# ntpdate time.ntp.org

    但这L同步Q只是强制性的系l时间设|ؓntp服务器时间。如果cpu tick有问题,只是L不治本。所以,一般配合cron命oQ来q行定期同步讄。比如,在crontab中添加:

0 12 * * * * /usr/sbin/ntpdate 192.168.0.1

     q样Q会在每天的12ҎQ同步一ơ时间。ntp服务器ؓ192.168.0.1?

    使用ntpd服务Q要好于ntpdate加cron的组合。因为,ntpdate同步旉Q会造成旉的蟩跃,对一些依赖时间的E序和服务会造成影响。比如sleepQtimer{。而且Qntpd服务可以在修正时间的同时Q修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步旉Q在其他时候用ntpd服务来同步时间?

    要注意的是,ntpd 有一个自我保护设|? 如果本机与上源时间相差太? ntpd 不运? 所以新讄的时间服务器一定要?ntpdate 从上源取得时间初? 然后启动 ntpd服务。ntpd服务 q行? 先是?4U与上源服务器同步一? Ҏ每次同步时测得的误差值经复杂计算逐步调整自己的时? 随着误差减小, 逐步增加同步的间? 每次跛_, 都会重复q个调整的过E?

 

?ntpd服务的设|?/strong>

    ntpd服务的相兌|文件如下:

1./etc/ntp.confQ这个是NTP daemon的主要设文gQ也?NTP 唯一的设定文件?

2./usr/share/zoneinfo/:在这个目录下的文件其实是规定了各主要时区的时间设定文Ӟ例如北京地区的时定文件在 /usr/share/zoneinfo/Asia/Beijing 是了。这个目录里面的文g与底下要谈的两个文g(clock 与localtime)是有关系的?

3./etc/sysconfig/clockQ这个文件其实也不包含在NTP ?daemon 当中Q因个是 linux 的主要时定文件。每ơ开机后QLinux 会自动的dq个文g来设定自ql所默认要显C的旉?

4./etc/localtimeQ这个文件就?#8220;本地端的旉配置文g”。刚刚那个clock 文g里面规定了用的旉讄文g(ZONE) ?/usr/share/zoneinfo/Asia/Beijing Q所以说Q这是本地端的旉了,此时Q?Linuxpȝ׃Beijing那个文g另存Z?/etc/localtime文gQ所以未来我们的旉昄׃以Beijing那个旉讑֮文g为准?

5. /etc/timezoneQ系l时区文?

 

    下面重点说说 /etc/ntp.conf文g的设|。在 NTP Server 的设定上面,其实最好不要对 Internet 无限制的开放,量仅提供您自己内部?Client 端联行网l校时就好。此外, NTP Server M是需要网l上面较为准的L来自行更新自q旉啊,所以在我们?NTP Server 上面也要找一部最靠近自己?Time Server 来进行自我校正。事实上Q?NTP q个服务也是 Server/Client 的一U模式?

[root@linux ~]# vi /etc/ntp.conf
# 1. 关于权限讑֮部分
#   权限的设定主要以 restrict q个参数来设定,主要的语法ؓQ?
#   restrict IP mask netmask_IP parameter
#   其中 IP 可以是Y件地址Q也可以?default Qdefault q?0.0.0.0
#   至于 paramter 则有Q?
#   ignore Q关闭所有的 NTP 联机服务
#   nomodifyQ表C?Client 端不能更?Server 端的旉参数Q不q,

#   Client 端仍然可以透过 Server 端来q行|络校时?
#   notrust Q该 Client 除非通过认证Q否则该 Client 来源被视ؓ不信ȝ?
#   noquery Q不提供 Client 端的旉查询

#   notrap Q不提供trapq个q程事gd

#  如果 paramter 完全没有讑֮Q那pC IP (或网?“没有M限制”

restrict default nomodify notrap noquery # 关闭所有的 NTP 要求包
restrict 127.0.0.1    #q是允许本查询
restrict 192.168.0.1 mask 255.255.255.0 nomodify
#?92.168.0.1/24|段内的服务器就可以通过q台NTP Serverq行旉同步?
# 2. 上层L的设?
#  要设定上层主Z要以 server q个参数来设定,语法为:
#  server [IP|HOST Name] [prefer]
#  Server 后面接的是我们上层 Time Server 啎ͼ而如?Server 参数
#  后面加上 perfer 的话Q那表示我们?NTP L主要以该部主机来作ؓ
#  旉校正的对应。另外,Z解决更新旉包的传送gq动作,
#  所以可以?driftfile 来规定我们的L
#  在与 Time Server 沟通时所p的时_可以记录?driftfile 
#  后面接的文g内,例如下面的范例中Q我们的 NTP server ?nbsp;
#  cn.pool.ntp.org联机时所p的时间会记录?/etc/ntp/drift文g?
server 0.pool.ntp.org

server 1.pool.ntp.org

server 2.pool.ntp.org

server cn.pool.ntp.org prefer

#其他讄|以系l默认值即?

server  127.127.1.0     # local clock

fudge   127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift
broadcastdelay  0.008
keys /etc/ntp/keys

ȝ一下,restrict用来讄讉K权限Qserver用来讄上层旉服务器,driftfile用来讄保存漂移旉的文件?

 

?ntp服务的启动与观察

在启动NTP服务前,先对提供服务的这C机手动的校正一ơ时间咯。(因ؓ启动服务器,端口会被服务端占用,׃能手动同步时间了Q?

[root@linux ~] # ntpdate cn.pool.ntp.org

25 Apr 14:33:51 ntpdate[8310]: step time server 80.85.129.2 offset 6.655976 sec

然后Q启动ntpd服务Q?

[root@linux ~] # service ntpd start

?[root@linux ~] # /etc/init.d/ntpd start

查看端口Q?

[root@linux ~] # netstat -ln|grep 123

udp        0      0 192.168.228.153:123        0.0.0.0:*

udp        0      0 127.0.0.1:123               0.0.0.0:*

udp        0      0 0.0.0.0:123                  0.0.0.0:*

udp        0      0 :::123                       :::*

如何认我们的NTP服务器已l更C自己的时间呢Q?

[root@linux ~] # ntpstat

synchronized to NTP server(127.127.1.0) at stratum 11

time correct to within 950ms

polling server every 64 s

#Ҏ令可列出NTP服务器是否与上层联机。由上述输出l果可知Q时间校正约

#?50*10(-6)U。且每隔64U会d更新旉?

常见的错误:

25 Apr 15:30:17 ntpdate[11520]: no server suitable for synchronization found

其实Q这不是一个错误。而是׃每次重启NTP服务器之后大U要3Q?分钟客户端才能与server建立正常的通讯q接。当此时用客Lq接服务端就会报q样的信息。一般等待几分钟可以了?

[root@linux ~] # ntptrace –n 127.0.0.1

127.0.0.1:stratum 11, offset 0.000000Qsynch distance 0.950951

222.73.214.125Qstratum 2Qoffset –0.000787Qsynch distance 0.108575

209.81.9.7:stratum 1Qoffset 0.000028Qsynch distance 0.00436Qrefid ‘GPS’

#q个指o可以列出目前NTP服务器(W一层)与上层NTP服务器(W二层)彼此之间?

#关系

[root@linux ~] # ntpq –p

指o“ntpq -p”可以列出目前我们的NTP与相关的上层NTP的状态,以上的几个字D늚意义如下Q?

remoteQ即NTPL的IP或主机名U。注意最左边的符P如果?#8220;+”则代表目前正在作用钟的上层NTPQ如果是“*”则表CZ有连上线Q不q是作ؓơ要联机的NTPL?

refidQ参考的上一层NTPL的地址

stQ即stratum阶层

whenQ几U前曑ցq时间同步更新的操作

pollQ下ơ更新在几秒之后

reachQ已l向上层NTP服务器要求更新的ơ数

delayQ网l传输过E钟延迟的时?

offsetQ时间补偿的l果

jitterQLinuxpȝ旉与BIOSg旉的差异时?

 

    最后提及一点,ntp服务Q默认只会同步系l时间。如果想要让ntp同时同步g旉Q可以设|?etc/sysconfig/ntpd 文g?

?etc/sysconfig/ntpd文g中,d SYNC_HWCLOCK=yes q样Q就可以让硬件时间与pȝ旉一起同步?/p>

Jakcie 2009-11-25 20:27 发表评论
]]>
Windwos7初体?/title><link>http://www.shnenglu.com/sigepluto/archive/2008/11/11/66622.html</link><dc:creator>Jakcie</dc:creator><author>Jakcie</author><pubDate>Tue, 11 Nov 2008 09:50:00 GMT</pubDate><guid>http://www.shnenglu.com/sigepluto/archive/2008/11/11/66622.html</guid><wfw:comment>http://www.shnenglu.com/sigepluto/comments/66622.html</wfw:comment><comments>http://www.shnenglu.com/sigepluto/archive/2008/11/11/66622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sigepluto/comments/commentRss/66622.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sigepluto/services/trackbacks/66622.html</trackback:ping><description><![CDATA[<p>今天图个新鲜Q在虚拟机里面安装了Windwos7玩了玩,说说感受?br></p> <p>虚拟机我用的是Vmware Workstation6.5Q官方下载可以试?0天。其实现在Vmware Server和Vmware Player都可以免费用,方便的很。设|了1Gb的内存,16Gb的硬盘,我这里,用的是SCSI的硬盘,但在|上看到有h安装不了Q必选择IDE的才能安装。也许是VMware的版本问题吧?br></p> <p>Windows7的安装过E比Vista和XP化了不少Q速度也不慢,我开q一堆东西,同时安装的,也没觉的{太久?br></p> <p>W一感觉Q很像VistaQ但去除了Vista的UACQ很多地方,虽然有那个安全标志(那个黄色的小盄Q,但ƈ不要用户再次认。而且Q去除一些警告也方便了很多。看来微软也吸取教训了。M感觉不错Q是个Vista++?img height=768 alt="" src="http://www.shnenglu.com/images/cppblog_com/sigepluto/windows7.jpg" width=1024 border=0><br></p> <p>值得一提的是,Windows7里面的PowerShellQ真的很强大Q而且貌似qlinux下的命o也全包括q去了。有前途!<img height=582 alt="" src="http://www.shnenglu.com/images/cppblog_com/sigepluto/powershell.png" width=881 border=0><br></p> <p>安装完成后,Vmware Tools也可以顺利安装。所有硬仉没有问题。兼Ҏ不错?br></p> <p>在安装快l束的时候会遇到要求输入序列PProduct KeyQ的一步。在q里什么也不填Q直接nextQ应该也可以安装。进pȝ后,在用|上传的激zL法激zR但在网上看到有些h在这一步进不了pȝQ这P需要一个可以安装的序列受需要的朋友Q给我写mailQ我发给你们。不q尽如此,也只?0天的试用期。(之后可以l?ơ)<br></p> <p>M感觉Windows7q是很不错的Q吸收了Vista的优点,Ҏ了用不方便的缺炏V值得一提的是,Windows7的硬仉求相当低Q未来还面向于NetBook。我在虚拟机下一路默认安装下来,只占?.2Gb的空间。非怸错?/p> <img src ="http://www.shnenglu.com/sigepluto/aggbug/66622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sigepluto/" target="_blank">Jakcie</a> 2008-11-11 17:50 <a href="http://www.shnenglu.com/sigepluto/archive/2008/11/11/66622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转蝲QC++库大?/title><link>http://www.shnenglu.com/sigepluto/archive/2008/07/31/57568.html</link><dc:creator>Jakcie</dc:creator><author>Jakcie</author><pubDate>Wed, 30 Jul 2008 16:30:00 GMT</pubDate><guid>http://www.shnenglu.com/sigepluto/archive/2008/07/31/57568.html</guid><wfw:comment>http://www.shnenglu.com/sigepluto/comments/57568.html</wfw:comment><comments>http://www.shnenglu.com/sigepluto/archive/2008/07/31/57568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/sigepluto/comments/commentRss/57568.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/sigepluto/services/trackbacks/57568.html</trackback:ping><description><![CDATA[<p>转蝲QC++库大?br><br>   基础c?br>1?Dinkumware C++ Library <br>参考站点:[url=http://www.dinkumware.com/]http://www.dinkumware.com[/url]<br>P.J. Plauger~写的高品质的标准库。P.J. Plauger博士是Dr. Dobb'sE序设计杰出奖的获得者。其~写的库长期被Microsoft采用Qƈ且最qBorland也取得了其OEM的licenseQ在其C/C+ +的品中采用Dinkumware的库?<br>2?RogueWave Standard C++ Library <br>参考站点:[url=http://www.roguewave.com/]http://www.roguewave.com[/url]<br>q个库在Borland C++ Builder的早期版本中曄被采用,后来被其他的库给替换了。笔者不推荐使用?<br>3、SGI STL <br>参考站点:[url=http://www.roguewave.com/]http://www.roguewave.com[/url]<br>SGI公司的C++标准模版库?<br>4、STLport <br>参考站点:[url=http://www.stlport.org/]http://www.stlport.org[/url]<br>SGI STL库的跨^台可UL版本?<br>5、准标准库——Boost <br>Boost 库是一个经q千锤百点{可UL、提供源代码的C++库,作ؓ标准库的后备Q是C++标准化进E的发动Z一?Boost库由C++标准委员会库工作l成员发P在C++C֌中媄响甚大,其成员已q?000人?Boost库ؓ我们带来了最新、最酗最实用的技术,是不折不扣的"?标准库?<br>Boost中比较有名气的有q么几个库: <br>Regex <br>正则表达式库 <br>Spirit <br>LL parser frameworkQ用C++代码直接表达EBNF <br>Graph <br>囄件和法 <br>Lambda <br>在调用的地方定义短小匿名的函数对象,很实用的functional功能 <br>Concept check <br>查泛型编E中的concept <br>MPL <br>用模板实现的元编E框?<br>Thread <br>可移植的C++多线E库 <br>Python <br>把C++cd函数映射到Python之中 <br>Pool <br>内存池管?<br>Smart_ptr <br>5个智能指针,学习指针必读Q一份不错的参考是来自CUJ的文章: <br>Smart Pointers in Boost,哦,q篇文章可以查到QCUJ是提供在U浏览的。中文版见笔者在《Dr. Dobb's Journal软g研发杂志》第7辑上的译文?<br>Boost M来说是实用h值很高,质量很高的库。ƈ且由于其对跨q_的强调,Ҏ准C++的强调,是编写^台无养ICC++的开发者必备的工具。但是Boost 中也有很多是实验性质的东西,在实际的开发中实用需要}慎。ƈ且很多Boost中的库功能堪U对语言功能的扩展,其构造用精巧的手法Q不要N然的p?间研诅RBoost另外一面,比如Graphq样的库则是h工业强度Q结构良好,非常值得研读的精品代码,q且也可以放心的在品代码中多多利用?<br>参考站点:[url=http://www.boost.org/]http://www.boost.org[/url]Q国内镜像: [url=http://www.c-view.org/tech/lib/boost/index.htm]http://www.c- view.org/tech/lib/boost/index.htm[/url]Q?<br>   GUI <br>在众多C++的库中,GUI部分的库是比较J荣Q也比较引h注目的。在实际开发中QGUI库的选择也是非常重要的一件事情,下面我们lD一下可选择的GUI库,各自的特点以及相兛_L支持?<br>1) MFC <br>大名鼎鼎的微软基cdQMicrosoft Foundation ClassQ。大凡学qVC++的h都应该知道这个库。虽然从技术角度讲QMFC是不大漂亮的Q但是它构徏于Windows API 之上Q能够ɽE序员的工作更容?~程效率高,减少了大量在建立 Windows E序时必ȝ写的代码Q同时它q提供了所有一?C++ ~程的优点,例如l承和封装。MFC ~写的程序在各个版本的Windows操作pȝ上是可移植的Q例如,?Windows 3.1下编写的代码可以很容易地UL?Windows NT ?Windows 95 上。但是在最q发展以及官Ҏ持上日渐势微?<br>2) QT <br>参考网站:[url=http://www.trolltech.com/]http://www.trolltech.com[/url]<br>Qt 是Trolltech公司的一个多q_的C++囑Ş用户界面应用E序框架。它提供l应用程序开发者徏立艺术的图形用L面所需的所用功能。Qt是完全面 向对象的很容易扩展,q且允许真正地组件编E。自?996q早些时候,Qtq入商业领域Q它已经成ؓ全世界范围内数千U成功的应用E序的基。Qt也是 行的Linux桌面环境KDE 的基Q同时它q支持Windows、Macintosh、Unix/X11{多U^台?<br>3) WxWindows <br>参考网站:[url=http://www.wxwindows.org/]http://www.wxwindows.org[/url]<br>跨^台的GUI库。因为其cdơ极像MFCQ所以有文章介绍从MFC到WxWindows的代码移植以实现跨^台的功能。通过多年的开发也是一个日完??GUI库,支持同样不弱于前面两个库。ƈ且是完全开放源代码的。新q的C++ Builder X的GUI设计器就是基于这个库的?<br>4) Fox <br>开放源代码的GUI库。作者从自己亲n的开发经验中得出了一个理想的GUI库应该是什么样子的感受出发Q从而开始了对这个库的开发。有兴趣的可以尝试一下?<br>参考网站:[url=http://www.fox-toolkit.org/]http://www.fox-toolkit.org/[/url] <br>5)   WTL <br>ZATL的一个库。因Z用了大量ATL的轻量手法Q模板等技术,在代码尺寸,以及速度优化斚w做得非常C。主要面向的使用体是开发COM轻量U供|络下蝲的可视化控g的开发者?<br>6)   GTK <br>参考网站:[url=http://gtkmm.sourceforge.net/]http://gtkmm.sourceforge.net/[/url] <br>GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnomeq样的杀手应用。而GTK是q个库的C++装版本?<br>   |络通信 <br>1) ACE <br>参考网站:[url=http://www.cs.wustl.edu/~schmidt/ACE.html]http://www.cs.wustl.edu/~schmidt/ACE.html[/url] <br>C++库的代表Q超重量U的|络通信开发框架。ACE自适配通信环境QAdaptive Communication EnvironmentQ是可以自由使用、开放源代码的面向对象框Ӟ在其中实C许多用于q发通信软g的核心模式。ACE提供了一l丰富的可复用C++ 包装外观QWrapper FacadeQ和框架lgQ可跨越多种q_完成通用的通信软gdQ其中包括:事g多\分离和事件处理器分派、信号处理、服务初始化、进E间通信、共享内 存管理、消息\由、分布式服务动态(重)配置、ƈ发执行和同步Q等{?<br>2) StreamModule <br>参考网站:[url=http://www.omnifarious.org/StrMod/]http://www.omnifarious.org/StrMod/[/url] <br>设计用于化编写分布式E序的库。尝试着使得~写处理异步行ؓ的程序更ҎQ而不是用同步的外壛_起异步的本质?<br>3) SimpleSocket <br>参考网站:[url=http://home.hetnet.nl/~lcbokkers/simsock.htm]http://home.hetnet.nl/~lcbokkers/simsock.htm[/url] <br>q个cd让编写基于socket的客?服务器程序更加容易?<br>4) A Stream Socket API for C++ <br>参考网站:[url=http://www.pcs.cnu.edu/~dgame/sockets/socketsC++ /sockets.html]http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html[/url] <br>又一个对Socket的封装库?<br>   XML <br>1) Xerces <br>参考网站:[url=http://xml.apache.org/xerces-c/]http://xml.apache.org/xerces-c/[/url] <br>Xerces-C++ 是一个非常健壮的XML解析器,它提供了验证Q以及SAX和DOM API。XML验证在文档类型定?Document Type DefinitionQDTD)斚w有很好的支持Qƈ且在2001q?2月增加了支持W3C XML Schema 的基本完整的开放标准?<br>2) XMLBooster <br>参考网站:[url=http://www.xmlbooster.com/]http://www.xmlbooster.com/[/url] <br>q个库通过产生特制的parser的办法极大的提高了XML解析的速度Qƈ且能够生相应的GUIE序来修改这个parser。在DOM和SAX两大LXML解析办法之外提供了另外一个可行的解决Ҏ?<br>3) Pull Parser <br>参考网站:[url=http://www.extreme.indiana.edu/xgws/xsoap/xpp/]http://www.extreme.indiana.edu/xgws/xsoap/xpp/[/url] <br>q个库采用pullҎ的parser。在每个SAX的parser底层都有一个pull的parserQ这个xpp把这层暴露出来直接给大家使用。在要充分考虑速度的时候值得试?<br>4) Xalan <br>参考网站:[url=http://xml.apache.org/xalan-c/]http://xml.apache.org/xalan-c/[/url] <br>Xalan是一个用于把XML文档转换为HTMLQ纯文本或者其他XMLcd文档的XSLT处理器?<br>5) CMarkup <br>参考网站:[url=http://www.firstobject.com/xml.htm'>[url]http: //www.firstobject.com/xml.htm[/url]]http://www.firstobject.com/xml.htm'>[url]http://www.firstobject.com/xml.htm[/url][/url] <br>q是一U用EDOM的XML解析器。在很多思\上面非常灉|实用。值得大家在DOM和SAX之外L一点灵感?<br>6) libxml++ <br>[url=http://libxmlplusplus.sourceforge.net/]http://libxmlplusplus.sourceforge.net/[/url] <br>libxml++是对著名的libxml XML解析器的C++装版本 <br>   U学计算 <br>1) Blitz++ <br>参考网站:[url=http://www.oonumerics.org/blitz/]http://www.oonumerics.org/blitz/[/url] <br>Blitz++ 是一个高效率的数D函数库Q它的设计目的是希望建立一套既具像C++ 一h便,同时又比Fortran速度更快的数D环境。通常Q用C++所写出的数值程序,?Fortran?0%左右Q因此Blitz++正是要改掉这个缺炏V方法是利用C++的template技术,E序执行甚至可以比Fortran更快?Blitz++目前仍在发展中,对于常见的SVDQFFTsQQMRES{常见的U性代数方法ƈ不提供,不过使用者可以很Ҏ地利用Blitz++所提供 的函数来构徏?<br>2) POOMA <br>参考网站:[url=http://www.codesourcery.com/pooma/pooma]http://www.codesourcery.com/pooma/pooma[/url] <br>POOMA是一个免费的高性能的C++库,用于处理q行式科学计。POOMA的面向对象设计方便了快速的E序开发,对ƈ行机器进行了优化以达到最高的效率Q方便在工业和研I环境中使用?<br>3) MTL <br>参考网站:[url=http://www.osl.iu.edu/research/mtl/]http://www.osl.iu.edu/research/mtl/[/url] <br>Matrix Template Library(MTL)是一个高性能的泛型组件库Q提供了各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能~译器的情况下,比如Intel的编译器Q从产生的汇~代码可以看出其与手写几乎没有两L效能?<br>4) CGAL<br>参考网站:[url=http://www.cgal.org/]www.cgal.org[/url] <br>Computational Geometry Algorithms Library的目的是把在计算几何斚w的大部分重要的解x案和Ҏ以C++库的形式提供l工业和学术界的用户?<br>   游戏开?<br>1) Audio/Video 3D C++ Programming Library <br>参考网站:[url=http://www.galacticasoftware.com/products/av/]http://www.galacticasoftware.com/products/av/[/url] <br>AV3D是一个跨q_Q高性能的C++库。主要的Ҏ是提供3D囑ŞQ声效支持(SB,以及S3MQ,控制接口Q键盘,鼠标和遥感)QXMS?<br>2) KlayGE <br>参考网站:[url=http://home.g365.net/enginedev/]http://home.g365.net/enginedev/[/url] <br>国内游戏开发高手自qC++开发的游戏引擎。KlayGE是一个开放源代码、跨q_的游戏引擎,q用Python作脚本语a。KlayGE在LGPL协议下发行。感谢龚敏敏先生Z国游戏开发事业所做出的A献?<br>3) OGRE <br>参考网站:[url=http://www.ogre3d.org/]http://www.ogre3d.org[/url] <br>OGRE Q面向对象的囑Ş渲染引擎Q是用C++开发的Q用灵zȝ面向对象3D引擎。它的目的是让开发者能更方便和直接地开发基?Dg讑֤的应用程序或游戏?引擎中的cdҎ底层的系l库Q如QDirect3D和OpenGLQ的全部使用l节q行了抽象,q提供了Z现实世界对象的接口和其它cR?<br>   U程 <br>1) C++ Threads <br>参考网站:[url=http://threads.sourceforge.net/]http://threads.sourceforge.net/[/url] <br>q个库的目标是给E序员提供易于用的c,q些c被l承以提供在Linux环境中很隄到的大量的线E方面的功能?<br>2) ZThreads<br>参考网站:[url=http://zthread.sourceforge.net/]http://zthread.sourceforge.net/[/url] <br>一个先q的面向对象Q跨q_的C++U程和同步库?<br>   序列?<br>1) s11n <br>参考网站:[url=http://s11n.net/]http://s11n.net/[/url] <br>一个基于STL的C++库,用于序列化PODQSTL容器以及用户定义的类型?<br>2) Simple XML Persistence Library <br>参考网站:[url=http://sxp.sourceforge.net/]http://sxp.sourceforge.net/[/url] <br>q是一个把对象序列化ؓXML的轻量的C++库?<br>   字符?<br>1) C++ Str Library <br>参考网站:[url=http://www.utilitycode.com/str/]http://www.utilitycode.com/str/[/url] <br>操作字符串和字符的库Q支持Windows和支持gcc的多U^台。提供高度优化的代码Qƈ且支持多U程环境和UnicodeQ同时还有正则表辑ּ的支持?<br>2) Common Text Transformation Library <br>参考网站:[url=http://cttl.sourceforge.net/]http://cttl.sourceforge.net/[/url] <br>q是一个解析和修改STL字符串的库。CTTL substringcd以用来比较,插入Q替换以及用EBNF的语法进行解析?<br>3) GRETA <br>参考网站:[url=http://research.microsoft.com/projects/greta/]http://research.microsoft.com/projects/greta/[/url] <br>q是由微软研I的研Ih员开发的处理正则表达式的库。在型匚w的情况下有非怼U的表现?<br>   l合 <br>1) P::Classes <br>参考网站:[url=http://pclasses.com/]http://pclasses.com/[/url] <br>一个高度可UL的C++应用E序框架。当前关注类型和U程安全的signal/slot机制Qi/opȝ包括Z插g的网l协议透明的i/o架构Q基于插件的应用E序消息日志框架Q访问sql数据库的cȝ{?<br>2) ACDK - Artefaktur Component Development Kit <br>参考网站:[url=http://acdk.sourceforge.net/]http://acdk.sourceforge.net/[/url] <br>q是一个^台无关的C++lg框架Q类gJava或?NET中的框架Q反机ӞU程QUnicodeQ废料收集,I/OQ网l,实用工具QXMLQ等{)Q以及对Java, Perl, Python, TCL, Lisp, COM ?CORBA的集成?<br>3) dlib C++ library <br>参考网站:[url=http://www.cis.ohio-state.edu/~kingd/dlib/]http://www.cis.ohio-state.edu/~kingd/dlib/[/url] <br>各种各样的类的一个综合。大整数QSocketQ线E,GUIQ容器类,以及览目录的API{等?<br>4) Chilkat C++ Libraries <br>参考网站:[url=http://www.c'>[url]http://www.c[/url]'>[url]http: //www.c[/url]'>[url]http://www.chilkatsoft.com/cpp_libraries.asp[/url]]http://www.c'>[url]http://www.c[/url]'>[url]http://www.c[/url]'>[url]http://www.chilkatsoft.com/cpp_libraries.asp[/url][/url] <br>q是提供zipQe-mailQ编码,S/MIMEQXML{方面的库?<br>5) C++ Portable Types Library (PTypes) <br>?考网站:[url=http://www.melikyan.com/ptypes/'>[url]http: //www.melikyan.com/ptypes/[/url]]http://www.melikyan.com/ptypes/'>[url]http://www.melikyan.com/ptypes/[/url][/url] <br>q是STL的比较简单的替代品,以及可移植的多线E和|络库?<br>6) LFC <br>参考网站:[url=http://lfc.sourceforge.net/]http://lfc.sourceforge.net/[/url] <br>哦,q又是一个尝试提供一切的C++?<br>   其他?<br>1) Loki <br>参考网站:[url=http://www.moderncppdesign.com/]http://www.moderncppdesign.com/[/url] <br>哦,你可能抱怨我早该和Boost一起介l它Q一个实验性质的库。作者在loki中把C++模板的功能发挥到了极致。ƈ且尝试把cM设计模式q样思想层面的东襉K过库来提供。同时还提供了智能指针这h较实用的功能?<br>2) ATL <br>ATL(Active Template Library)是一l小巧、高效、灵zȝc,q些cMؓ创徏可互操作的COMlg提供了基本的设施?<br>3) FC++: The Functional C++ Library <br>q?个库提供了一些函数式语言中才有的要素。属于用库来扩充语言的一个代表作。如果想要在OOP之外L另一分的乐趣Q可以去看看函数式程序设计的世界。大?Peter Norvig?"Teach Yourself Programming in Ten Years"一文中将函数式语a列ؓ臛_应当学习?cȝE语a之一?<br>4) FACT! <br>参考网站:[url=http://www.kfa-juelich.de/zam/FACT/start/index.html]http://www.kfa-juelich.de/zam/FACT/start/index.html[/url] <br>另外一个实现函数式语言Ҏ的?<br>5) Crypto++ <br>提供处理密码Q消息验证,单向hashQ公匙加密系l等功能的免费库?<br>q有很多非常Ȁ动h心或者是极其实用的C++库,限于我们的水q以及文章的幅不能包括q来。在对于q些已经包含q来的库的介l中Q由于ƈ不是每一个我们都使用q,所以难免有偏颇之处Q请读者见谅?<br>6) Managed C++ wrapper for ZLib<br>压羃lgZlib的C++cd<br>7) CppSQLite - C++ Wrapper for SQLite<br>SQLite C++装?br>8)CxImage<br>囑փ格式转换<br>   资源|站 <br>正如我们可以通过计算机历史上的重要h物了解计机史的发展QC++相关人物的网站也可以使我们得到最有h值的参考与借鉴Q下面的人物我们认ؓ没有介绍?必要Q只因下面的人物在C++领域的地位众所周知Q我们只相关的资源q行|列以供读者学习,他们有的工作于贝实验室Q有的工作于知名~译器厂商,有的 在不断推q语a的标准化Q有的ؓ读者撰写了多部千古奇作...... <br>Bjarne Stroustrup [url=http://www.research.att.com/~bs/]http://www.research.att.com/~bs/[/url] <br>Stanley B. Lippman http: //blogs.msdn.com/slippman/(中文版[url=http://www.zengyihome.net/slippman /index.htm]http://www.zengyihome.net/slippman/index.htm[/url]) <br>Scott Meyers [url=http://www.aristeia.com/]http://www.aristeia.com/[/url] <br>David Musser [url=http://www.cs.rpi.edu/~musser/]http://www.cs.rpi.edu/~musser/[/url] <br>Bruce Eckel [url=http://www.bruceeckel.com/]http://www.bruceeckel.com[/url] <br>Nicolai M. Josuttis [url=http://www.josuttis.com/]http://www.josuttis.com/[/url] <br>Herb Sutter [url=http://www.gotw.ca/]http://www.gotw.ca/[/url] <br>Andrei Alexandrescu [url=http://www.moderncppdesign.com/]http://www.moderncppdesign.com/[/url] <img src ="http://www.shnenglu.com/sigepluto/aggbug/57568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/sigepluto/" target="_blank">Jakcie</a> 2008-07-31 00:30 <a href="http://www.shnenglu.com/sigepluto/archive/2008/07/31/57568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.everspringgroup.cn" target="_blank">һɫþ99һۺ</a>| <a href="http://www.mayishenggou.cn" target="_blank">žžþ99ۺһ</a>| <a href="http://www.uubux.com.cn" target="_blank">ŷ鶹þþþþ</a>| <a href="http://www.weixinqun688.cn" target="_blank">þþƷĻ23ҳ</a>| <a href="http://www.yxwelding.com.cn" target="_blank">ŷ޾þþþƷ</a>| <a href="http://www.mynyf8.cn" target="_blank">ƷѸþ</a>| <a href="http://www.vltr.cn" target="_blank">þٸ۲AV</a>| <a href="http://www.nxjinniu.com.cn" target="_blank">ۺϾþһ</a>| <a href="http://www.nbtutor.cn" target="_blank">רþۺϾĻ</a>| <a href="http://www.weryuadfsd.cn" target="_blank">þþƷֻоƷ2020</a>| <a href="http://www.zjhgkjjt.com.cn" target="_blank">þþۺ</a>| <a href="http://www.jjygw.cn" target="_blank">bƷþþþþþ</a>| <a href="http://www.120o.cn" target="_blank">޹ƷþSM</a>| <a href="http://www.9746.com.cn" target="_blank">þþƷ72</a>| <a href="http://www.damingxing.cn" target="_blank">þAV˳׽</a>| <a href="http://www.reababy.cn" target="_blank">þþƷһ </a>| <a href="http://www.xkart.cn" target="_blank">999þþùƷ</a>| <a href="http://www.wxpk10.cn" target="_blank">þþþþþþƷɫ</a>| <a href="http://www.168yetibizhi.cn" target="_blank">9191ƷѾþ</a>| <a href="http://www.jxlbw.cn" target="_blank">ɫۺϾþþĻ</a>| <a href="http://www.bjnyjdxcj.cn" target="_blank">޷?Vþò</a>| <a href="http://www.gitscm.com.cn" target="_blank">Ʒþһ</a>| <a href="http://www.tmsystem888.cn" target="_blank">˾þþƷһ</a>| <a href="http://www.study1.cn" target="_blank">þþƷһ</a>| <a href="http://www.b24193.cn" target="_blank">99þ99þþþƷ</a>| <a href="http://www.0379f.cn" target="_blank">99ξþþŷƷվ</a>| <a href="http://www.52zqsq.cn" target="_blank">þþþþavѿƬ</a>| <a href="http://www.710p.cn" target="_blank">99þùѸ</a>| <a href="http://www.wd12cjf8.cn" target="_blank">97þþƷҹһ</a>| <a href="http://www.piaozen.cn" target="_blank">ŷ޾ƷþþavӰ</a>| <a href="http://www.heizhuai.cn" target="_blank">ŷպƷþ</a>| <a href="http://www.shangbi.com.cn" target="_blank">޾Ʒþþwww</a>| <a href="http://www.spfklnl.cn" target="_blank">һAëƬѹۿþþƷ</a>| <a href="http://www.ywpc88.cn" target="_blank">þùҹaӰԺ</a>| <a href="http://www.ssui1.cn" target="_blank">޹þþۺվ</a>| <a href="http://www.dywanjiale.cn" target="_blank">þþžоƷ23ٻӰԺ</a>| <a href="http://www.fly5.com.cn" target="_blank">Ļþҹ</a>| <a href="http://www.95dq.cn" target="_blank">þþþþþĻ</a>| <a href="http://www.qvuavh.cn" target="_blank">7777Ʒþþô߽</a>| <a href="http://www.game839.cn" target="_blank">޹ŷۺ997þ</a>| <a href="http://www.xiaoaiyl.cn" target="_blank">99þҹɫƷվ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>