原创 橋接模式探究

pimpl 用法背後的思想是把客戶與所有關於類的私有部分的知識隔離開。由於客戶是依賴於類的頭文件的,頭文件中的任何變化都會影響客戶,即使僅是對私有節或保護節的修改。pimpl用法隱藏了這些細節,方法是將私有數據和函數放入一個單獨的類中,

原创 UNIX環境高級編程----標準I/O

一.流:當用標準I/O打開或創建一個文件時,我們使一個流與一個文件相關聯,當打開一個流時,標準I/O函數fopen返回一個指向FILE對象的指針,該對象通常是一個結構,它包含了標準I/O庫爲管理該流所需要的所有信息,包括:用於實際I/O的

原创 MoreWindows 專注於Windows編程 白話經典算法系列之六 快速排序 快速搞定

快速排序由於排序效率在同爲O(N*logN)的幾種排序方法中效率較高,因此經常被採用,再加上快速排序思想----分治法也確實實用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個,還有大大小的程序方面的考試如軟考,

原创 strcat,strcmp,memcpy,strcpy等函數的實現

1、Strcat函數原型如下 char *strcat(char *strDest, const char *strScr) //將源字符串加const,表明其爲輸入參數 { char * address = strDes

原创 DLL注入技術之遠線程注入

玩了這麼久的hack,竟然到最近玩一個QQ顯IP小軟件的時候才知道注入是幹什麼用的,慚愧慚愧。剛好看到一個論壇上有一系列簡明的說dll注入的文章 特此轉載 正規主題 作者: DLL注入技術之遠線程注入 日期: 2013-0

原创 UNIX環境高級編程----文件屬性及權限

一:文件相關屬性 stat,lstat,fstat1 函數都是獲取文件(普通文件,目錄,管道,socket,字符,塊()的屬性。函數原型#include <sys/stat.h> #include <sys/stat.h> int sta

原创 UNIX環境高級編程---- 進程

進程是操作系統結構的基礎;是一個正在執行的程序;計算機中正在運行的程序實例;可以分配給處理器並由處理器執行的一個實體;由單一順序的執行顯示,一個當前狀態和一組相關的系統資源所描述的活動單元。 進程終止的8種方式 1)  從main返回 2

原创 auto_ptr淺析

auto_ptr是C++標準庫中(<utility>)爲了解決資源泄漏的問題提供的一個智能指針類模板(注意:這只是一種簡單的智能指針) auto_ptr的實現原理其實就是RAII,在構造的時候獲取資源,在析構的時候釋放資源,並進行相關指針

原创 libevent服務端編程簡單使用

一 libevent簡介 libevent是一個支持Windows、linux和bsd等平臺的網絡事件驅動程序庫。它支持多種I/O服用機制,按照優先級從高到低依次爲:evport、kqueue、epoll、devpoll、rtsig、

原创 設計模之工廠模式

軟件領域中的設計模式爲開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了面向對象編程語言的重要特性:封裝、繼承、多態,真正領悟設計模式的精髓是可能一個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用C+

原创 堆和棧的區別

一、預備知識―程序的內存分配 一個由c/C++編譯的程序佔用的內存分爲以下幾個部分 1、棧區(stack)― 由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似於數據結構中的棧。 2、堆區(heap)

原创 DLL注入

DLL注入的一般步驟爲: (1)取得注入進程ID dwRemoteProcessId; (2)取得注入DLL的完全路徑,並將其轉換爲寬字符模式pszLibFileName; (3)利用Windows API OpenProcess打開宿主

原创 UNIX環境高級編程----文件I/O

1.   文件I/O 文件描述符:對於內核而言,所有打開的文件都通過文件描述符引用,文件描述符是一個非負整數,當打開一個文件或創建一個新文件時,內核向進程返回一個文件描述符。在UNIX系統中使用文件描述符0域進程的標準輸入相關聯,1與標準

原创 c++模板類學習

1、模板的概念 我們已經學過重載(Overloading),對重載函數而言,C++的檢查機制能通過函數參數的不同及所屬類的不同。正確的調用重載函數。例如,爲求兩個數的最大值,我們定義MAX()函數需要對不同的數據類型分別定義不同重載(Ov

原创 vs2012編譯boost_1_53_0

Boost庫的介紹        Boost庫是一個經過千錘百煉、可移植、提供源代碼的C++庫,作爲標準庫的後備,是C++標準化進程的發動機之一。 Boost庫由C++標準委員會庫工作組成員發起,其中有些內容有望成爲下一代C++標準庫內容