iT邦幫忙

DAY 15
3

emacs的30天學習筆記系列 第 19

emacs 做中學第十九天:gsoap2,那些web service ,泛xml的應用

  • 分享至 

  • xImage
  •  

~/gsoap-2.8/gsoap/samples/rss底下有一個應用,
關於rss reader的部分。
在註解中說明了使用方式。

Compile:
$ soapcpp2 -c -CSL rss.h
$ cc rss.c stdsoap2.c soapC.c

Usage (client):
$ rss [maxitems] URL

稍微解釋一下soapcpp2 工具程式參數的意義,
-c是產生c語言,沒寫表示產生c++的輔助程式。

-C generate client-side code only 產生用戶端的源碼
-S generate server-side code only 產生伺服端的源碼
-L don't generate soapClientLib/soapServerLib 產生
那些code。

在筆者的ubuntu裏,略做修改,
$ cc rss.c ../../stdsoap2.c soapC.c

因為沒有指名產生的檔案名,所以預設是產生a.out

執行程式變成,

$ ./a.out 15 http://tw.rd.yahoo.com/referurl/info/rss/*http://tw.stock.yahoo.com/rss/url/d/e/N3.html  

結果是:

Title: Yahoo!奇摩股市 - 個股動態
Link: http://tw.stock.yahoo.com/
Language: zh-tw
Description: Yahoo!å¥æ©è¡å¸
Image title: Yahoo!奇摩股市 - 個股動態
Image url: http://.....................
Image link: http://...................
Image dimensions: 144 x 28
Image description: 1 Title: 樂金調升產能 友達:機率低
Link: http://....../*http:..................
Description: <![CDATA[(中央社記者潘智義台北2011年10月25日電)....器........]]>

所以rss也是一種web service。
可以用指令列讀取,並解析。


之後,要進行換種角度的程式碼分析,
在開源軟體界,有一20多歲的程式碼分析軟體:cscopehttp://cscope.sourceforge.net/
幾乎算是必備的工具,而官網上的教學(tutorial)是kernel source。
一些驚人的數字:

the kernel tarball alone is 30 MB, it expands into 150 MB of source code, and the Cscope database we'll generate will gobble up another 20-100+ MB。

大概是說, 壓縮檔約30 MB. 解壓後約150 MB, Cscope 資料庫索引約 20~100多MB. 這是2.4.18時的統計數字,而現在是2.6.6X,
至少是2倍以上。

Cscope 按照傳統的source 裝法,即可。

大略做法如下:

以筆者的例子:在**~/gsoap-2.8/gsoap/目錄,解析.c和.h**的程式。

~/gsoap-2.8/gsoap$ find  -name '*.h' > cscope.files



~/gsoap-2.8/gsoap$ find  -name '*.c' >> cscope.files

注意 **>,>>**有差哦。
然後

cscope -b -q -k

產生cscope 檢索資料庫。

KEY cscope 進入管理介面。

小弟初時看這個介面,因為個人資質問題,還真得無法意會,

一般人應該容易了解。但我真得隔了幾個星期才了解。

畫面下半部是 key關鍵字,上半部是檢索的結果。
按tab鍵可以到下半部 key 關鍵字。

上半部檢索的結果,按SPACE 鍵,可以看更多檢索結果。
按enter可以進入檔案裏,看更多。按**:q**回到上一個畫面。

而理解這個用法很重要。

筆者之前不理解這些簡單的道理,直接跳emacs 的cscope 外掛,結果搞得一頭霧水。欲速則不達吧。

小結:如果有實作筆者之前所提gdb的trace手法,要trace gsoap2應該不太難。
維持著一種興奮,藉由一些工具,可以滿足我們一直增強的好奇心。


上一篇
emacs 做中學第十八天:gsoap2,滿肚子的疑問,滿到脖子上了
下一篇
emacs 做中學第二十天:gsoap2,會用(設定)還不夠,要會抄,會抄還不夠,要能跑
系列文
emacs的30天學習筆記38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言