青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

2010年8月8日

SVN客戶端腳本(LUA)

 1 --打開日志文件
 2 svnlogPath = assert(arg[3], "路徑為空");
 3 svnlog = assert(io.open(svnlogPath, "r"), "打開日志文件失敗!");
 4 
 5 --日志是否為空
 6 if svnlog:read(0== nil then
 7     --日志為空
 8     svnlog:close();
 9     io.stderr:write("請?zhí)顚懭罩荆?/span>");
10     os.exit(1);
11 else
12     --檢查日志內(nèi)容
13     local count = 1;
14     while true do
15         local line = svnlog:read();
16 
17         if line == nil then
18             break;
19         end
20 
21         --查找是否匹配
22         if string.len(line) > 0 then
23             if not string.find(line, ".:%s*%S") then
24                if not string.find(line, ".\239\188\154%s*%S") then
25                  svnlog:close();
26                  io.stderr:write("日志沒有填寫完整");
27                  os.exit(1);
28                 end
29             end
30         end
31 
32         count = count + 1;
33     end
34 
35     --檢查行數(shù)是否>6行
36     if count < 6 then
37          svnlog:close();
38          io.stderr:write("請?zhí)顚懲暾罩? ");
39          os.exit(1);
40     end
41 
42 end
43 
44 svnlog:close();
45 

posted @ 2010-08-08 21:22 gewala 閱讀(436) | 評論 (0)編輯 收藏

2009年11月8日

在EZ430開發(fā)板的串口類異常

  我發(fā)現(xiàn)串口類cnComm在串口轉(zhuǎn)USB的設備上有些能工作(USB430),但在EZ430上卻不能工作,很奇怪!我懷疑是硬件問題,畢竟串口轉(zhuǎn)USB硬件上有差別。我發(fā)現(xiàn)cnComm的線程一直收到一些不存在的事件,導致死循環(huán)。
  今天上網(wǎng)看了一篇資料,說是那個DCB配置了硬件握手協(xié)議導致了一些不支持這個功能的串口轉(zhuǎn)USB設備出錯。我覺得有點道理,有時間試驗一下。先看一下cnComm的DCB配置情況。

摘抄

    使用API進行串口編程時設置串口屬性(SetCommState)是一條必經(jīng)之路,其DCB結(jié)構(gòu)幾乎涵蓋了所有和串口通訊相關的資源設置,由于有些設備需要使用RTS和CTS進行數(shù)據(jù)的收發(fā)控制,為了提高接收效率可以使用RTS握手選項dcb.fRtsControl=RTS_CONTROL_HANDSHAKE; 在標準串口下使用一切正常,但在一些沒有標準串口的筆記本上卻不能發(fā)送數(shù)據(jù),后經(jīng)過仔細排查發(fā)現(xiàn)就是RTS握手選項搞的鬼,關閉此選項后一切恢復正常。

    由于公司只有一種USB轉(zhuǎn)RS232的設備,所以也沒有測試其他品牌/類型的設備是否也存在這個問題。如果有朋友遇到串口通訊在USB轉(zhuǎn)RS232下不好用的時候,可以看看RTS握手選項的狀態(tài)。


    發(fā)現(xiàn)cnComm打開了發(fā)送和接收的流控制,fDtrControl=DTR_CONTROL_ENABLE,fRtrControl=RTR_CONTROL_ENABLE。有可能是這個原因。

posted @ 2009-11-08 00:00 gewala 閱讀(438) | 評論 (0)編輯 收藏

2009年11月3日

內(nèi)存溢出檢測學習

  最近發(fā)現(xiàn)CRT控制臺程序沒有TRACE和內(nèi)存溢出檢查,很郁悶。無聊中翻看MSDN的Memory Management and the Debug Heap篇,發(fā)現(xiàn)C的Debug版本用_malloc_dbg代替malloc,而_malloc_dbg者給數(shù)據(jù)堆加上一個控制頭組成鏈表,方便記錄溢出。原話如下:
  When you request a memory block, the debug heap manager allocates from the base heap a slightly larger block of memory than requested and returns a pointer to your portion of that block. For example, suppose your application contains the call: malloc( 10 ). In a release build, malloc would call the base heap allocation routine requesting an allocation of 10 bytes. In a debug build, however, malloc would call _malloc_dbg, which would then call the base heap allocation routine requesting an allocation of 10 bytes plus approximately 36 bytes of additional memory. All the resulting memory blocks in the debug heap are connected in a single linked list, ordered according to when they were allocated:
  那個控制頭的數(shù)據(jù)結(jié)構(gòu)如下:
typedef struct _CrtMemBlockHeader
{
// Pointer to the block allocated just before this one:
   struct _CrtMemBlockHeader *pBlockHeaderNext; 
// Pointer to the block allocated just after this one:
   struct _CrtMemBlockHeader *pBlockHeaderPrev; 
   
char *szFileName;   // File name
   int nLine;          // Line number
   size_t nDataSize;   // Size of user block
   int nBlockUse;      // Type of block
   long lRequest;      // Allocation number
// Buffer just before (lower than) the user's memory:
   unsigned char gap[nNoMansLandSize];  
} _CrtMemBlockHeader;

  這個nBlockUse有6種內(nèi)存塊,具體含義還沒有搞清楚,分別如下
/* Memory block identification */
#define _FREE_BLOCK      0
#define _NORMAL_BLOCK    1
#define _CRT_BLOCK       2
#define _IGNORE_BLOCK    3
#define _CLIENT_BLOCK    4
#define _MAX_BLOCKS      5
  檢測內(nèi)存溢出用_CrtDumpMemoryLeaks(),在crtdbg.h中定義。有時間研究一下crtdbg.h文件。
  參考http://www.cnblogs.com/phinecos/archive/2009/10/29/1592604.html


posted @ 2009-11-03 22:53 gewala 閱讀(1074) | 評論 (0)編輯 收藏

2009年10月21日

一個時間軟件

  從NIST網(wǎng)站上下了個時間軟件,看起來很古老,但功能強大。我在NIST網(wǎng)站上一直找不到網(wǎng)絡時間服務器,但在這個軟件中發(fā)現(xiàn)可以下載更新服務器地址,很好很強大。
下載
 

posted @ 2009-10-21 22:18 gewala 閱讀(257) | 評論 (0)編輯 收藏

2009年10月20日

一些API函數(shù)--《windows程序設計》

   《window程序設計》果然是經(jīng)典,相對于MFC來說SDK簡直是返璞歸真啊。繼續(xù)摘錄一些API函數(shù)和技巧:
  CheckRadioButton(hwnd,IDC_SERVER1,IDC_SERVER10, wServer);
  1、Selects (adds a check mark to) a given radio button in a group and clears (removes a check mark from) all other radio buttons in the group. 在IDC_SERVER1-IDC_SERVER10中選中wServer的ID,有點像分組。

  DialogBoxParam (hInst, TEXT ("Servers"), hwnd, ServerDlg, (LPARAM) szIPAddr);
  2、可以在WM_INITDIALOG的LPARAM傳參數(shù),建立模態(tài)對話框。ServerDlg為消息處理函數(shù),szIPAddr為參數(shù),在WM_INITDIALOG消息響應中處理LPARAM的值。

typedef char *  va_list;

#define _INTSIZEOF(n)   ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
#define va_start(ap,v)  ( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t)    ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define va_end(ap)      ( ap = (va_list)0 )
  3、va_list可變參數(shù)的結(jié)構(gòu),有點復雜慢慢看。
  一般的用法是這樣(個人理解)
va_list args; //聲明變量
va_start(args, fmt); //開始解析。args指向fmt后面的參數(shù)
TYPE var = va_arg(args, TYPE); //取下一個參數(shù)并返回。args指向下一個參數(shù)
va_end(args); //結(jié)束解析
http://hi.baidu.com/kang_liang/blog/item/168c9059a9a1ca2d2934f05f.html

  4、wsprintf和wvsprintf的區(qū)別,從它們的參數(shù)可以看出。
int wsprintf(
  LPTSTR lpOut,    
// output buffer
  LPCTSTR lpFmt,   // format-control string
                // optional arguments
);

int wvsprintf( LPTSTR lpOutput, // buffer for output
               LPCTSTR lpFormat, // format-control string
               va_list
// variable list of format-control arguments
               );

  wsprintf純粹是格式化字符串,wvsprintf是以參數(shù)列表Va_list格式化字符串。

posted @ 2009-10-20 22:36 gewala 閱讀(539) | 評論 (0)編輯 收藏

2009年10月19日

strtok用法--提取字符串

    最近看Petzold的《windows程序設計》,在Internet那章中看到如何在字符串中提取IP地址,特地標記一下:
1 GetDlgItemTextA (hwnd, wServer, szLabel, sizeof (szLabel));
2 strtok (szLabel, "(");
3 strcpy (szServer, strtok (NULL, ")"));
    在Msdn上查了一下,有下面一段:

    On the first call to strtok , the function skips leading delimiters and returns a pointer to the first token in strToken , terminating the token with a null character. More tokens can be broken out of the remainder of strToken by a series of calls to strtok . Each call to strtok modifies strToken by inserting a null character after the token returned by that call. To read the next token from strToken , call strtok with a NULL value for the strToken argument. The NULL strToken argument causes strtok to search for the next token in the modified strToken . The strDelimit argument can take any value from one call to the next so that the set of delimiters may vary.

Warning    Each of these functions uses a static variable for parsing the string into tokens. If multiple or simultaneous calls are made to the same function, a high potential for data corruption and inaccurate results exists. Therefore, do not attempt to call the same function simultaneously for different strings and be aware of calling one of these function from within a loop where another routine may be called that uses the same function.  However, calling this function simultaneously from multiple threads does not have undesirable effects.

    看來用了靜態(tài)變量,還好有多線程的C運行庫,否則在多線程在有麻煩了。

posted @ 2009-10-19 23:05 gewala 閱讀(2354) | 評論 (0)編輯 收藏

僅列出標題  
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統(tǒng)計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章分類

文章檔案

設計模式 網(wǎng)絡編程

網(wǎng)絡

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲视频999| 欧美激情第五页| 男女精品网站| 欧美成人一区在线| 免费亚洲一区| 亚洲成色777777在线观看影院| 午夜一区不卡| 欧美资源在线| 欧美1区2区| 亚洲精品中文字| 午夜精品美女自拍福到在线| 亚洲婷婷国产精品电影人久久| 99人久久精品视频最新地址| 亚洲在线成人| 久久亚洲视频| 欧美日韩国产区| 国产精品女主播| 国产农村妇女精品一二区| 国产日韩欧美综合一区| 亚洲片在线观看| 亚洲午夜久久久久久久久电影院| 亚洲一区中文字幕在线观看| 麻豆成人在线| 欧美午夜寂寞影院| 国产一区二区三区在线观看网站 | 日韩视频免费大全中文字幕| 亚洲一级免费视频| 免费在线亚洲欧美| 亚洲女女女同性video| 麻豆久久久9性大片| 国产精品久久久久久模特| 国产亚洲精品aa| 亚洲一区二区在线视频| 久久这里有精品视频| 一本色道久久88综合日韩精品| 欧美中文字幕不卡| 欧美人在线观看| 在线精品视频免费观看| 篠田优中文在线播放第一区| 亚洲人成在线观看| 欧美色图首页| 免费在线观看成人av| 国产欧美一区二区三区在线老狼 | 日韩一级片网址| 久久视频精品在线| 国产日韩欧美制服另类| 亚洲婷婷在线| 亚洲精品欧美精品| 另类综合日韩欧美亚洲| 一区在线观看| 久久福利一区| 亚洲一级特黄| 国产精品看片你懂得| 亚洲一级免费视频| 一区二区三区不卡视频在线观看 | 欧美一站二站| 亚洲欧美日韩在线观看a三区| 欧美日韩xxxxx| 夜夜夜久久久| 亚洲激情社区| 欧美乱大交xxxxx| 一本大道久久a久久综合婷婷| 欧美xx视频| 久久深夜福利| **性色生活片久久毛片| 久久精品99国产精品日本| 午夜精品久久久久久久久久久久| 国产精品日韩欧美一区二区| 欧美亚洲一级| 欧美一区网站| 在线观看免费视频综合| 久久精品国产2020观看福利| 午夜久久资源| 怡红院精品视频在线观看极品| 久久一区二区三区四区| 噜噜噜久久亚洲精品国产品小说| 亚洲日本中文字幕| 亚洲美女中文字幕| 国产精品久久中文| 久久在线播放| 欧美精品导航| 午夜免费在线观看精品视频| 欧美一区91| 亚洲欧洲一区二区三区| 一区二区三区成人精品| 国产美女诱惑一区二区| 久久亚洲一区二区三区四区| 欧美高潮视频| 亚洲欧美在线看| 久久久久久久综合| 夜夜嗨一区二区三区| 欧美片第1页综合| 欧美一区二区精品| 久久亚洲综合色| 亚洲女爱视频在线| 久久久久五月天| 亚洲制服欧美中文字幕中文字幕| 久久精品国产久精国产爱| 日韩视频在线观看免费| 午夜欧美理论片| 亚洲黄一区二区三区| 亚洲一级在线| 亚洲电影网站| 亚洲欧美日本视频在线观看| 亚洲人体偷拍| 久久国产福利| 亚洲少妇一区| 每日更新成人在线视频| 欧美影片第一页| 欧美日韩亚洲一区二区三区在线观看| 欧美制服丝袜| 欧美伦理影院| 欧美va日韩va| 国产农村妇女精品一区二区| 亚洲美女电影在线| 黑丝一区二区三区| 亚洲人久久久| 亚洲国产岛国毛片在线| 亚洲欧美一区二区三区极速播放| 日韩小视频在线观看| 欧美资源在线观看| 亚洲欧美一区二区三区极速播放| 噜噜噜躁狠狠躁狠狠精品视频| 欧美一区网站| 国产欧美精品一区二区三区介绍 | 亚洲社区在线观看| 一区三区视频| 久久精品国产亚洲精品| 亚洲视频一区二区免费在线观看| 久久久久久久久久久一区 | 欧美日本高清| 亚洲激情偷拍| 亚洲精品乱码视频| 欧美国产一区视频在线观看| 久久久欧美精品| 国产亚洲欧美日韩一区二区| 亚洲图色在线| 亚洲欧美国内爽妇网| 久久女同互慰一区二区三区| 国产精品亚洲欧美| 一区二区三区精品视频| 宅男噜噜噜66一区二区| 欧美—级a级欧美特级ar全黄| 欧美刺激午夜性久久久久久久| 狠狠综合久久| 欧美在线观看视频一区二区| 欧美呦呦网站| 国产亚洲制服色| 午夜免费在线观看精品视频| 亚洲欧美日韩国产精品| 国产日韩在线一区| 性色一区二区| 久久人人爽人人| 亚洲第一色在线| 亚洲精品一区久久久久久| 另类欧美日韩国产在线| 亚洲电影观看| 99国产精品久久| 欧美多人爱爱视频网站| 亚洲黄色影片| 亚洲午夜精品久久久久久浪潮 | 久久在线免费视频| 亚洲国产另类久久精品| 日韩亚洲成人av在线| 国产精品美女一区二区在线观看 | 亚洲视频在线一区| 欧美日韩免费一区| 亚洲综合国产| 久久野战av| 亚洲美女视频网| 国产欧美亚洲视频| 噜噜噜噜噜久久久久久91| 亚洲人成在线播放| 欧美影院一区| 亚洲破处大片| 欧美三级视频在线播放| 久久激情网站| 亚洲六月丁香色婷婷综合久久| 亚洲欧美伊人| 亚洲国产精品视频| 国产精品久久777777毛茸茸| 欧美一区二区日韩| 日韩特黄影片| 久久久国际精品| 一本色道久久88精品综合| 国产精品一区二区久激情瑜伽| 久久久久久久久一区二区| 欧美激情精品久久久久| 欧美有码在线视频| 一二三区精品| 伊人色综合久久天天| 欧美午夜电影完整版| 午夜伦理片一区| 在线视频精品一区| 欧美高清在线一区| 欧美在线免费视屏| 亚洲视频免费| 在线免费观看成人网| 国产一区三区三区| 欧美午夜精品|