Time of Update: 2018-12-05
有時候需要串連某機器,但是直接連被屏蔽了,雖然可以用代理來搞定一些應用程式,但是很多程式不支援代理,或者只支援某些類型的代理,這時候就可以試一試 proxychains 這個軟體了。 比如:svn 只支援 HTTP 代理,不支援 socks4 代理,svn+ssh 方式也挺麻煩的。如果只有 socks 代理,就不能直接使用,可以用一個 socks 轉 HTTP 代理軟體的,但是需要在 ~/.subversion/servers 裡配置。此時用 proxychains
Time of Update: 2018-12-05
常用 sscanf 解析字串,處理錯誤也很簡單:sscanf 會返回實際解析並賦值了的域的個數,判斷一下是否和期望的一致即可。今天卻遭遇一個解析地址的 bug,是由於地址本應該是“127.0.0.1:30000”被寫成 “127.0.0.1:30000:127.0.0.1:30000”,原來用 sscanf 解析,判斷結果等於5就認為正確,卻沒有判斷額外的字元。 修正: bool Assign(const char* src) { unsigned int b1, b2
Time of Update: 2018-12-05
為了醒目,我們常把資訊比如日誌以彩色輸出到終端,這會用到 ANSI 彩色控制字元。通常輸出到檔案的時候,為了分析或者查看方便(很多工具不識別),則往往不輸出彩色。 其實輸出彩色還是有些工具能查看的,比如 cat 就可以,還有就是 less 也是可以的,用 -R 選項即可: -R or --RAW-CONTROL-CHARS Like -r, but only ANSI "color" escape sequences are output in
Time of Update: 2018-12-05
colorgcc, colormake, man, vim 等的彩色可能很多人都知道了,今天介紹 colortail,讓 tail 命令也多彩起來。colortail http://joakimandersson.se/projects/colortail/下載後 configure, make, make check, make install 就可以使用除了用 -k 選項指定色彩設定檔外,跟 tail 命令都一樣。 代碼有些老,在新的 g++ 可能編譯不了,主要是 iostream.h
Time of Update: 2018-12-05
OSI共7層,從低到高依次為:物理層、資料連結層、網路層、傳輸層、會話層、展示層、應用程式層。上一層的使用都是建立在下一層的基礎上的。 物理層: 物理層傳輸的單位是二進位,建立在物理傳輸介質的基礎上,傳輸的是一段沒有規則的位元流,不考慮資訊的規則和內容。 資料連結層:傳輸的是以幀為單位的有一定規則的資料包,可以進行流量控制,為了進行資料的可靠傳輸,資料連結層要完成物理地址的定義,資料幀的封裝,差錯檢查等工作。對資料基礎再次加工,主要是在mac地址 網路層:傳輸單位是資料包,主要是完成目的地址的選
Time of Update: 2018-12-05
TCP IP共分為四層 分別是:應用程式層對應OSI的應用程式層、展示層、會話層傳輸層對應OSI的傳輸層網際層對應OSI的網路層網路介面層對應OSI的資料連結層以及物理層 TCP/IP 全程為translation control protocol /International protocol包括傳輸控制層與網路應用程式層,是一個協議簇傳輸層分為以下兩類1 TCP
Time of Update: 2018-12-05
參考了http://blog.csdn.net/huxin2007/article/details/6766074的文章。類似於究舉法。主要思路:1. 先對輸入按面值的從小到大排序,這對剪枝有協助,比如: 輸入面值:1,2,3,4,5 顧客要求是 3 假如計算到分支 1,1,2 的時候,超過 3 了,後面的 1,1,3 ; 1,1,4 ; 1,1,5 都不需要計算了2. 對解的評價,採用了一個計算公式,省去了較複雜的條件判斷。--這個比較好 評價分數 =
Time of Update: 2018-12-05
搜尋類的題目,參考自:http://hi.baidu.com/alpc29_33/blog/item/43205f10c41dc377ca80c488.html糾結了N天的一道題。#include <iostream>#include <cstring>#include <algorithm>#include <functional>using namespace std;int parts[65];int used[65];int
Time of Update: 2018-12-05
最近在看《Com原理與應用》這本書,在第4章看彙總時被卡住了,昨天搞了一個晚上沒搞清楚,今天早上接著調試,把所有的函數都進行Log記錄,最終發現了問題所在。開始未能理解其中的微妙, 不明白為什麼明明調用的是QueryInterface函數,實際上去調用了一個不相干的函數NondelegationQueryInterface。後來從下面這個連結中知道了其中的關鍵所在,又回想起侯捷翻譯的《C++物件模型》中的論述,現在基本理解其中的原因了。網路有一篇寫的有點亂的文章:
Time of Update: 2018-12-05
1,異或運算的規則:a) 0 xor 0 = 0b) 0 xor 1 = 1c) 1 xor 0 = 1d) 1 xor 1 = 02, 異或運算的性質:a) a xor a = 0b) (a xor b) xor c = a xor (b xor c)c) IF a xor b = c THEN a xor c = a xor (a xor b) = (a xor a) xor b = b3, 異或的應用Q1:
Time of Update: 2018-12-05
發信人: RoachCock (chen3feng), 信區: MicrosoftTRD 標 題: 我的 VB的函數指標調用 發信站: BBS 水木清華站 (Fri Jan 3 14:54:25 2003), 轉信 本文首發於水木清華BBS MicrosoftTRD版,轉載請保留有關資訊 作者chen3feng(RoachCock@smth.org) email: chen3feng@163.com, chen3fengx@hotmail.com
Time of Update: 2018-12-05
判斷鏈表是否存在環,有如下幾種解法:1. 遍曆鏈表,將已經遍曆過的節點放在一個hash表中,如果一個節點已經存在hash表中,說明有環。時間:O(n) 空間:O(n)2. 反轉鏈表。 時間O(n),空間O(1),使用三個指標。(ref: http://www.cppblog.com/tx7do/archive/2009/01/06/71280.html) 單鏈表反轉:下面給出兩種可能的實現。 普通版: void reverse(node*& head) {
Time of Update: 2018-12-05
下面是分頁控制項的關鍵代碼。本代碼的缺點是查詢語句受到了一定的限制。 private DataTable Binddatatable(int PageNum) { sqlstring = "select CORPNUM,NickName,CORPNAME,OwnerName,ADDRESS,PhoneNum,USERNAME,MODIFYTIME,CORPCOUNT,CARCOUNT,DRIVERCOUNT from tbCorporationInfo order by
Time of Update: 2018-12-05
本文始發於水木清華BBS(smth.org),轉載請保留有關資訊,謝謝! 通過使用類型庫提高VB調用DLL函數的效能RoachCock@smth mailto:chen3feng@163.com, chen3fengx@163.com, chen3fengx@hotmail.com VB雖然是個很好玩的東西,但是自身功能有限,限制了VB在某些方面的應用. MS提供了兩種兩種方式來增強VB的功能,一種是調用COM組件,另一種就是調用Dll函數
Time of Update: 2018-12-05
Windows 上我們可以用 GetMuduleName 獲得可執行檔的名字。Linux 下應該是 /proc/self/exe,如果只需要獲得大概的名字用作協助資訊和診斷報告等,可以用 program_invocation_name 或者program_invocation_short_name 。 program_invocation_name 是進程被命令列啟動時調用的名字,也就是 argv[0]。program_invocation_short_name
Time of Update: 2018-12-05
代碼如下: for(i = n; i > 0; i--){ … } for(i = 0; i < n; i++) { … } 前者的執行效率會比後一條執行效率要高,因為:i- -操作本身會影響CPSR(當前程式狀態寄存器),CPSR常見的標誌有N(結果為負), Z(結果為0),C(有進位),O(有溢出)。i > 0,可以直接通過Z標誌判斷出來。i++操作也會影響CPSR(當前程式狀態寄存器),但隻影響O(有溢出)標誌,這對於i <
Time of Update: 2018-12-05
c({'fm':'as','F':'779717E8','F1':'9D73F1E4','F2':'4CA6BE6B','F3':'54E5243D','T':'1277790691','title':this.innerHTML,'url':this.href,'p1':3,'y':'774F7FBA'})" href="http://edu.codepub.com/2009/0704/8267.php" target="_blank">用 LD_PRELOAD 挽救被誤刪的 libc.so.
Time of Update: 2018-12-05
發信人: RoachCock (chen3feng), 信區: Programming 標 題: 在VBS中使用事件 發信站: BBS 水木清華站 (Thu Jun 13 18:55:43 2002) VBS是一種功能強大的語言,這個從各種巨集病毒的泛濫可以看得出,VBS功能強大不是語言 本身,而是它具有調用自動化COM組件的能力,而且,在VBS中還可以使用事件 VBS提供了一個GetRef函數,VBS手冊上說是返回一個函數指標,我調試的結果,是返回一個
Time of Update: 2018-12-05
機器是4core, 單cpu,檔案大小 15GiB,分成 N 個線程共隨機讀取一萬次,SUSE10, Linux 2.6.16 核心初始機器負載基本為空白,線程個數與耗時的關係如下:線程個數 耗時0 31.3s1 31.3s2 25.5s4 20.2s8 16.5s12 15.0s16 14.2s24 13.3s32 12.6s64 12.5s128 13.
Time of Update: 2018-12-05
select 效率問題大家都知道,但是 select 正確性問題,很少有人討論,特地點出來。linux 下 fd_set 是個 1024 位的位元影像,每個位代表一個 fd 的值,這也是效率低的原因。效能問題且不提,正確性問題則更值得重視。因為這是一個1024 位的位元影像,因此當進程內的 fd 值 >= 1024 時,就會越界,可能會造成崩潰。對於伺服器程式,fd >= 1024很容易達到,只要串連數 + 開啟的檔案數足夠大即可發生。這麼多串連的時候,估計沒人在用 select