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

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区| 欧美福利电影在线观看| 久久青草福利网站| 欧美在线亚洲一区| 久久精品官网| 麻豆国产精品va在线观看不卡| 久久久999国产| 噜噜噜91成人网| 亚洲国产第一页| 亚洲电影免费在线观看| 日韩视频久久| 午夜视频一区| 久久综合伊人77777蜜臀| 麻豆成人av| 亚洲日本电影| 亚洲欧美中文在线视频| 久久精品国产2020观看福利| 欧美精品九九| 国产在线观看91精品一区| 在线观看av一区| 中国亚洲黄色| 老司机亚洲精品| 日韩午夜在线| 久久精品综合一区| 欧美偷拍一区二区| 在线精品高清中文字幕| 亚洲视屏在线播放| 欧美一区二区三区免费看| 欧美激情一区二区三区不卡| 亚洲女人av| 欧美国产精品中文字幕| 国产一区二区三区精品欧美日韩一区二区三区 | 美女视频黄 久久| 欧美激情精品久久久久久| 国产精品日韩欧美综合| 亚洲欧洲综合| 久久亚洲综合色| 日韩手机在线导航| 美女尤物久久精品| 国产亚洲aⅴaaaaaa毛片| 亚洲激情偷拍| 美女在线一区二区| 午夜精品亚洲一区二区三区嫩草| 久久综合中文字幕| 国产欧美日韩在线视频| 亚洲新中文字幕| 亚洲福利国产精品| 久久三级福利| 国产一区二区精品久久91| 一区二区三区产品免费精品久久75| 老司机一区二区| 久久精品一本久久99精品| 国产日韩欧美视频在线| 亚洲欧美日韩一区二区三区在线| 欧美成人精品一区二区| 久久久久一区二区三区四区| 国产一区二区三区久久悠悠色av| 亚洲欧美国产三级| av成人免费在线观看| 亚洲福利在线看| 久久天天狠狠| 亚洲黄色小视频| 一区在线播放视频| 久久久午夜电影| 性亚洲最疯狂xxxx高清| 国产精品男女猛烈高潮激情 | 国产精品久久久久国产精品日日| 99av国产精品欲麻豆| 男女av一区三区二区色多| 久久国产综合精品| 狠狠干成人综合网| 久久久99国产精品免费| 欧美一区二区三区视频在线观看| 日韩视频一区二区三区| 欧美乱妇高清无乱码| 中文国产一区| 一区二区三区欧美在线观看| 国产精品二区在线观看| 新67194成人永久网站| 午夜在线观看欧美| 国外成人在线视频| 欧美激情一区二区久久久| 欧美人交a欧美精品| 亚洲天堂av图片| 亚洲欧美国产一区二区三区| 黄色在线一区| 亚洲三级视频| 欧美激情亚洲国产| 午夜欧美大尺度福利影院在线看| 一区二区三区视频在线看| 国产欧美一区二区精品婷婷| 免费短视频成人日韩| 欧美日韩国产综合久久| 久久免费观看视频| 欧美理论电影网| 蜜桃av一区| 国产精品v亚洲精品v日韩精品| 久久精彩免费视频| 欧美日韩爆操| 免费观看成人www动漫视频| 欧美久久在线| 欧美电影美腿模特1979在线看| 欧美日韩一区二区三区四区五区 | 91久久精品美女高潮| 国产精品久久| 欧美国产精品人人做人人爱| 国产精品美女主播| 亚洲激情偷拍| 国精品一区二区| 宅男噜噜噜66一区二区| 亚洲国产视频一区| 久久精品国产精品亚洲综合| 亚洲香蕉伊综合在人在线视看| 快射av在线播放一区| 亚洲午夜激情| 欧美激情小视频| 欧美电影免费观看大全| 国产主播精品| 午夜免费久久久久| 亚洲欧洲偷拍精品| 久久国产高清| 久久国产福利| 国产精品久久久久7777婷婷| 一区二区三区视频免费在线观看| 亚洲欧美在线一区| 一区二区三区欧美视频| 嫩草伊人久久精品少妇av杨幂| 久久精品一二三区| 国产亚洲成av人在线观看导航 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲午夜精品久久久久久浪潮 | 中文在线一区| 欧美国产成人在线| 亚洲黄色性网站| 日韩亚洲欧美精品| 欧美精品高清视频| 亚洲人成在线影院| 一本一本久久| 欧美日本在线播放| 日韩一区二区福利| 亚洲天堂成人在线观看| 欧美天天影院| 午夜精品美女自拍福到在线 | 亚洲欧美国产高清| 国产精品麻豆成人av电影艾秋| 在线一区二区三区做爰视频网站 | 亚洲国产精品久久久久秋霞蜜臀| 曰韩精品一区二区| 米奇777超碰欧美日韩亚洲| 亚洲大胆在线| 中文欧美字幕免费| 国产伦精品一区| 久久久噜噜噜久久| 亚洲国产精品久久久久秋霞不卡 | 亚洲激情av| 欧美精品一区二区三区久久久竹菊| 亚洲人屁股眼子交8| 午夜精品福利一区二区蜜股av| 国产欧美日韩另类一区| 久久人人97超碰国产公开结果| 亚洲二区免费| 亚洲伊人色欲综合网| 国产欧美精品日韩区二区麻豆天美 | 久久久久久久综合色一本| 欧美福利一区二区三区| 99国产欧美久久久精品| 国产欧美精品一区aⅴ影院| 久久久www成人免费毛片麻豆| 亚洲高清免费| 欧美在线视频在线播放完整版免费观看| 经典三级久久| 一区二区三区视频在线| 欧美一区二视频| 91久久久亚洲精品| 国产精品永久免费视频| 久久亚洲私人国产精品va| 亚洲精品一区二区三区婷婷月 | 久久久久网站| 欧美高清不卡| 亚洲午夜激情网页| 国产一区999| 欧美视频在线观看一区二区| 欧美一区二区福利在线| 亚洲区欧美区| 久久资源在线| 亚洲欧美激情视频| 日韩视频免费在线| 一区二区亚洲| 国产伦精品免费视频| 欧美精品色综合| 久久久久久欧美| 欧美亚洲一级片| 99成人免费视频| 亚洲第一综合天堂另类专| 久久乐国产精品| 欧美在线免费视屏| 亚洲一二区在线| 日韩一级免费| 亚洲三级电影全部在线观看高清|