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

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("請填寫日志!");
10     os.exit(1);
11 else
12     --檢查日志內容
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     --檢查行數是否>6行
36     if count < 6 then
37          svnlog:close();
38          io.stderr:write("請填寫完整日志! ");
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開發板的串口類異常

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

摘抄

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

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


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

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

2009年11月3日

內存溢出檢測學習

  最近發現CRT控制臺程序沒有TRACE和內存溢出檢查,很郁悶。無聊中翻看MSDN的Memory Management and the Debug Heap篇,發現C的Debug版本用_malloc_dbg代替malloc,而_malloc_dbg者給數據堆加上一個控制頭組成鏈表,方便記錄溢出。原話如下:
  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:
  那個控制頭的數據結構如下:
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種內存塊,具體含義還沒有搞清楚,分別如下
/* 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
  檢測內存溢出用_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網站上下了個時間軟件,看起來很古老,但功能強大。我在NIST網站上一直找不到網絡時間服務器,但在這個軟件中發現可以下載更新服務器地址,很好很強大。
下載
 

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

2009年10月20日

一些API函數--《windows程序設計》

   《window程序設計》果然是經典,相對于MFC來說SDK簡直是返璞歸真啊。繼續摘錄一些API函數和技巧:
  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傳參數,建立模態對話框。ServerDlg為消息處理函數,szIPAddr為參數,在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可變參數的結構,有點復雜慢慢看。
  一般的用法是這樣(個人理解)
va_list args; //聲明變量
va_start(args, fmt); //開始解析。args指向fmt后面的參數
TYPE var = va_arg(args, TYPE); //取下一個參數并返回。args指向下一個參數
va_end(args); //結束解析
http://hi.baidu.com/kang_liang/blog/item/168c9059a9a1ca2d2934f05f.html

  4、wsprintf和wvsprintf的區別,從它們的參數可以看出。
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是以參數列表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.

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

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

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

導航

統計

常用鏈接

留言簿

隨筆分類

隨筆檔案

文章分類

文章檔案

設計模式 網絡編程

網絡

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区三区视频在线观看| 欧美国产日韩二区| 亚洲国产欧美国产综合一区| 一区二区三区视频在线播放| 久久伊人精品天天| 亚洲女与黑人做爰| 欧美四级在线| 亚洲精品1区| 老牛国产精品一区的观看方式| 99视频在线精品国自产拍免费观看| 欧美中文在线视频| 夜夜嗨av色综合久久久综合网| 免费久久99精品国产自| 国产综合久久久久久鬼色| 亚洲欧美999| 一本久久a久久免费精品不卡| 欧美freesex8一10精品| 精品91在线| 欧美一区二区在线| 午夜精品久久久久久久白皮肤 | 久久青草久久| 欧美亚洲三区| 国产欧美一区二区精品性| 亚洲欧美在线看| 亚洲午夜一区二区三区| 国产精品嫩草99a| 欧美一区二区观看视频| 亚洲欧美日韩另类| 国产一区二区日韩精品| 久久噜噜亚洲综合| 久久人人九九| 亚洲伦理一区| 99伊人成综合| 国产精品一级| 久久综合九色综合久99| 久久综合九九| 99精品欧美一区二区三区| 亚洲精品一区二区网址| 国产精品白丝av嫩草影院| 亚洲欧美视频在线| 久久精品免视看| 亚洲日韩欧美视频| 中文在线资源观看网站视频免费不卡| 国产精品白丝av嫩草影院| 久久成人一区| 蜜臀久久久99精品久久久久久| 99国产精品久久久久久久久久 | 亚洲视频中文| 亚洲女同精品视频| 在线免费不卡视频| 一区二区三区av| 一区二区三区在线不卡| 亚洲精品在线免费观看视频| 国产精品午夜电影| 欧美成人第一页| 欧美性大战久久久久久久| 久久久亚洲影院你懂的| 欧美国产日韩一区二区在线观看| 亚洲夜间福利| 久久av一区二区三区亚洲| 亚洲人成毛片在线播放| 亚洲欧美一区二区三区极速播放 | 中日韩在线视频| 午夜在线一区| 国产精品美女久久久久久2018| 欧美在线视频播放| 蜜臀va亚洲va欧美va天堂| 午夜在线播放视频欧美| 母乳一区在线观看| 久久精品国产2020观看福利| 欧美电影资源| 久久亚洲私人国产精品va| 欧美日韩免费在线| 毛片基地黄久久久久久天堂| 欧美日韩精品久久| 欧美成人午夜| 国产综合婷婷| 亚洲愉拍自拍另类高清精品| 亚洲精品女av网站| 久久蜜桃精品| 久久久不卡网国产精品一区| 欧美日韩喷水| 91久久精品国产| 国模套图日韩精品一区二区| 99成人在线| 亚洲精品欧洲| 久久综合久久久久88| 久久精品夜色噜噜亚洲aⅴ| 国产精品久久久久一区二区| 日韩天堂在线视频| 亚洲剧情一区二区| 久久se精品一区精品二区| 欧美一区二区三区在线视频 | 国产精品www.| 在线视频中文亚洲| 亚洲天堂av在线免费观看| 欧美激情国产日韩| 亚洲国语精品自产拍在线观看| 在线观看欧美亚洲| 久久精品视频在线看| 久久久久久亚洲精品杨幂换脸 | 日韩一级裸体免费视频| 亚洲欧洲精品一区二区三区不卡 | 亚洲成色777777女色窝| 在线观看一区视频| 久久亚洲影院| 欧美激情第1页| 亚洲破处大片| 欧美刺激午夜性久久久久久久| 欧美激情bt| 99在线精品视频| 欧美日韩一区二区三区在线| 日韩视频欧美视频| 亚洲在线不卡| 国产午夜精品久久| 久久综合狠狠| 99v久久综合狠狠综合久久| 午夜精品一区二区三区电影天堂 | 久久乐国产精品| 免费久久99精品国产| 亚洲国产影院| 欧美日韩国产在线看| 99www免费人成精品| 亚洲欧美日韩综合国产aⅴ| 国产日韩精品一区二区| 久久久噜久噜久久综合| 亚洲国产三级在线| 亚洲欧美成人| 一区二区三区在线免费播放| 欧美福利视频在线| 亚洲淫片在线视频| 奶水喷射视频一区| 亚洲视频二区| 在线观看国产精品网站| 欧美女同视频| 久久激情五月丁香伊人| 亚洲精品乱码久久久久久| 欧美一区二区精美| 亚洲精品欧美在线| 黄页网站一区| 国产精品theporn88| 久久av一区二区三区| 亚洲精品视频免费在线观看| 久久狠狠亚洲综合| 亚洲人体影院| 国产午夜精品美女毛片视频| 欧美成人在线网站| 午夜精品三级视频福利| 亚洲激情在线视频| 久久夜色精品国产亚洲aⅴ| 免费亚洲电影| 亚洲一区二区三区影院| 亚洲免费一级电影| 亚洲精品欧美精品| 久久久久国产精品麻豆ai换脸| 国产欧美日本一区视频| 美日韩丰满少妇在线观看| 欧美日本韩国一区二区三区| 亚洲一区网站| 亚洲全部视频| 裸体素人女欧美日韩| 亚洲午夜精品17c| 亚洲高清色综合| 国产日韩欧美电影在线观看| 欧美伦理在线观看| 每日更新成人在线视频| 欧美一区二区三区另类| 亚洲天堂成人| 亚洲精品一区二区三区蜜桃久 | 午夜精品久久久久久99热软件| 一区二区三区在线免费观看| 国产精品毛片在线看| 欧美日韩成人| 美脚丝袜一区二区三区在线观看 | 狠狠v欧美v日韩v亚洲ⅴ| 国产精品第十页| 欧美日韩国产天堂| 欧美精品在线视频| 欧美成人69| 欧美大学生性色视频| 欧美电影打屁股sp| 欧美 日韩 国产精品免费观看| 亚洲综合视频在线| 99亚洲视频| 99在线|亚洲一区二区| 日韩五码在线| 一本色道精品久久一区二区三区 | 91久久精品国产91久久性色| 好吊日精品视频| 伊人成综合网伊人222| 激情久久综合| 亚洲国产成人久久综合一区| 亚洲二区精品| 亚洲精品综合在线| 亚洲视频图片小说| 亚洲综合视频网| 久久精品道一区二区三区| 亚洲专区在线| 亚洲精品一区久久久久久| 亚洲区中文字幕|